在每一次調(diào)試前,我們要做的工作就是把硬件全部組態(tài)正確,網(wǎng)絡(luò)組建好。此時,才能把程序下載進(jìn)去進(jìn)行軟硬件的調(diào)試。然而,就是這前期的組網(wǎng)問題,往往能夠遇到千奇百怪的問題。不管經(jīng)歷過多少的彎路,最終都會把項目調(diào)試完成。只不過是順利不順利的問題。下面就我經(jīng)歷過的一些小白問題,跟大家分享下。
1、模塊已組態(tài),但不可用,預(yù)設(shè)值/實際值不匹配:(插入的模塊和組態(tài)的模塊類型不同) 期望的型號 ,與當(dāng)前型號不匹配或是 不可用。
這樣的故障最為常見了。那么,很有可能的原因:(1)就是檢查組態(tài)型號和實際模塊型號是否一致。不過這樣的原因很小,因為大家做工程都很謹(jǐn)慎,(2)就是硬件上有些模塊沒能正確連接上,導(dǎo)致故障出現(xiàn)。也會出現(xiàn)此類故障現(xiàn)象。我遇到a.西門子ET200S上的高性能直接啟動器模塊與底板插接處,因為接線工的暴力,竟然把鏈接處的插針壓彎了。表面上安裝到位了。實際沒有到位。這樣導(dǎo)致ET200S故障,導(dǎo)致CPU也會出現(xiàn)上面的故障。當(dāng)時,換了模塊也不行,換了底板才發(fā)現(xiàn)插針已經(jīng)損壞。b.實際安裝的模塊數(shù)量比軟件組態(tài)中的數(shù)量模塊多一個,但是多這個模塊沒有用,只是備用。但是,軟件中的硬件組態(tài)下載到CPU中,硬件多一個模塊,雖然沒有接外邊傳感信號,但是它在ET200S接口模塊上。這個故障讓我很郁悶。大致一看,沒有問題。都是正確的。但是,仔細(xì)檢查,少組態(tài)了一個備用的模塊。同樣也會出現(xiàn)上面的故障信息。
2、針對總線沒有連通,我遇到的情況跟大家分享下。
(1)ProfiNet網(wǎng)絡(luò)不能正常連接
a、網(wǎng)線硬件連接就是錯誤的。由于接線都是接線工來操作。根據(jù)在線診斷,定位故障的子站或是分站的設(shè)備。 我都是再另外做一根長的網(wǎng)線,單獨拉一根到出故障的設(shè)備上面,進(jìn)行檢測。直接判斷出,網(wǎng)線的硬件接線錯誤。b.干擾問題所致。當(dāng)時,我的網(wǎng)絡(luò)總線布置是分站和變頻器走在一路上面,星型連接。每一路上面都是ET200S子站和變頻器。當(dāng)時組態(tài)沒有問題,但是真正運行時候,就出現(xiàn)網(wǎng)絡(luò)故障。后來在網(wǎng)絡(luò)布置上進(jìn)行更改,一路上把子站放一路,把變頻器放一路,這樣重新布置網(wǎng)絡(luò),重新布線,避免了上面的問題。
(2)ProfiBus網(wǎng)絡(luò)不能正常連接
a.設(shè)備初期運行正常,運行了半年之后,就總是出現(xiàn)丟站的現(xiàn)象。當(dāng)時,以為是干擾所致,就把所有屏蔽做了檢測和修改。故障仍然出現(xiàn)??偩€電纜也是西門子原裝的。后來就更改網(wǎng)絡(luò)結(jié)構(gòu)。把CPU上的DP接口放在總線的中間,終端電阻打到OFF,然后,兩邊再連接其他DP站。原來是CPU放在DP總線的開始端,這樣經(jīng)過更改之后,故障不出現(xiàn)了。這根通訊的據(jù)率和速率有關(guān)系導(dǎo)致這個故障出現(xiàn)。
b、DP總線一直故障,連接不上。從硬件檢查,包括DP設(shè)備上撥碼開關(guān)。軟件參數(shù)的檢查都沒有問題。但是始終通訊不上。這個故障讓我折騰很長時間才找出問題。當(dāng)時,也是把通訊電纜和動力電纜分開布線,降低通訊速率,終端電阻檢查,屏蔽接線的檢查。都沒有問題。
原來是DP接頭安放的位置不對所致的。 我CPU下掛了機器人。機器人對CPU來說是從站,但是機器人自身有下掛了ET200L作為這個模塊的主站。這樣,機器人作為CPU從站,作為ET200L模塊的主站。DP總線需要兩個DP接頭,一個是從CPU過來的,一個是從ET200L過來。都要接在機器人上安裝的CP5614 A2這個通訊卡上面。同時,要保證機器人內(nèi)部通訊參數(shù)配置正確,I.O驅(qū)動配置正確。以為這方面原因,折騰來折騰去的。反復(fù)配置斷電重啟。都不行??唇K端電阻的位置也都正確。后來靜心想了下,漏 一個環(huán)節(jié),因為接線安裝都是工人在操作。我一看DP接頭硬件安裝位置機不對,導(dǎo)致整個DP總線就不能通訊。后來把兩個DP接頭在機器人控制柜內(nèi)換下位置就全部好了。
上面是我們都經(jīng)常在調(diào)試前遇到小問題,只是我們做調(diào)試前,細(xì)心點,冷靜點,都能把這些問題快速解決。
請問PID控制中,當(dāng)輸出超出范圍后執(zhí)行 MX = 1.0 - (MPn + MDn ) 和MX = - (MPn + MDn),這兩條算法的作用是什么呢?”
答:這兩個公式用來對PID的輸出限幅。S7-200的系統(tǒng)手冊的PID“變量和范圍”中有下面的內(nèi)容:
“輸出變量是由PID運算產(chǎn)生的,所以在每一次PID運算完成之后,需更新回路表中的輸出值,輸出值被限定在0.0~1.0之間。
如果使用積分控制,積分項前值要根據(jù)PID運算結(jié)果更新。這個更新了的值用作下一次PID運算的輸入,當(dāng)計算輸出值超過范圍(大于1.0或小于0.0),那么積分項前值必須根據(jù)下列公式進(jìn)行調(diào)整:
MX=1.0 –(MPn + MDn) 當(dāng)計算輸出Mn > 1.0
或
MX= –(MPn + MDn) 當(dāng)計算輸出Mn < 0.0
其中:
MX是調(diào)整過的偏差的數(shù)值
MPn是在采樣時間n時回路輸出比例項數(shù)值
MDn是在采樣時間n時回路輸出微分項數(shù)值
Mn是在采樣時間n時回路輸出數(shù)值”
在系統(tǒng)手冊的積分項部分,對積分項公式中的MX的解釋如下:“MX是在采樣時刻n–1時的積分項的數(shù)值(也稱為積分和或偏差)?!?/span>
“積分和(MX)是所有積分項前值之和。在每次計算出MIn之后,都要用MIn去更新MX。”
可見可以將MX視為PID的輸出的積分部分MIn。PID的輸出Mn= MPn + MIn + MDn= MPn + MX + MDn
上面的兩個公式實際上是用來對PID的輸出限幅的。
當(dāng)Mn > 1.0時,令Mn = MPn + MX + MDn= 1.0,所以MX=1.0 –(MPn + MDn)
當(dāng)Mn > 0.0時,令Mn = MPn + MX + MDn= 0.0,所以MX= –(MPn + MDn)
S7-200PLC中斷優(yōu)先級和排對等候
優(yōu)先級是指多個中斷事件同時發(fā)出中斷請求時,CPU對中斷事件響應(yīng)的優(yōu)先次序。S7-200規(guī)定的中斷優(yōu)先由高到低依次是:通信中斷、I/O中斷和定時中斷。每類中斷中不同的中斷事件又有不同的優(yōu)先權(quán),如表2所示。
一個程序中總共可有128個中斷。S7-200在各自的優(yōu)先級組內(nèi)按照先來先服務(wù)的原則為中斷提供服務(wù)。在任何時刻,只能執(zhí)行一個中斷程序。一旦一個中斷程序開始執(zhí)行,則一直執(zhí)行至完成。不能被另一個中斷程序打斷,即使是更高優(yōu)先級的中斷程序。中斷程序執(zhí)行中,新的中斷請求按優(yōu)先級排隊等候。中斷隊列能保存的中斷個數(shù)有限,若超出,則會產(chǎn)生溢出。中斷隊列的最多中斷個數(shù)和溢出標(biāo)志位如表3所示。
表2中斷事件及優(yōu)先級
優(yōu)先級分組 |
組內(nèi)優(yōu)先級 |
中斷事件號 |
中斷事件說明 |
中斷事件類別 |
通信中斷 |
0 |
8 |
通信口0:接收字符 |
通信口0 |
0 |
9 |
通信口0:發(fā)送完成 |
||
0 |
23 |
通信口0:接收信息完成 |
||
1 |
24 |
通信口1:接收信息完成 |
通信口1 |
|
1 |
25 |
通信口1:接收字符 |
||
1 |
26 |
通信口1:發(fā)送完成 |
||
I/O中斷
|
0 |
19 |
PTO 0脈沖串輸出完成中斷 |
脈沖輸出 |
1 |
20 |
PTO 1脈沖串輸出完成中斷 |
||
2 |
0 |
I0.0上升沿中斷 |
外部輸入 |
|
3 |
2 |
I0.1上升沿中斷 |
||
4 |
4 |
I0.2上升沿中斷 |
||
5 |
6 |
I0.3上升沿中斷 |
||
6 |
1 |
10.0下降沿中斷 |
||
7 |
3 |
I0.1下降沿中斷 |
||
8 |
5 |
I0.2下降沿中斷 |
||
9 |
7 |
I0.3下降沿中斷 |
||
10 |
12 |
HSC0當(dāng)前值=預(yù)置值中斷 |
高速計數(shù)器 |
|
11 |
27 |
HSC0計數(shù)方向改變中斷 |
||
12 |
28 |
HSC0外部復(fù)位中斷 |
||
13 |
13 |
HSC1當(dāng)前值=預(yù)置值中斷 |
||
14 |
14 |
HSC1計數(shù)方向改變中斷 |
||
15 |
15 |
HSC1外部復(fù)位中斷 |
||
16 |
16 |
HSC2當(dāng)前值=預(yù)置值中斷 |
||
17 |
17 |
HSC2計數(shù)方向改變中斷 |
||
18 |
18 |
HSC2外部復(fù)位中斷 |
||
19 |
32 |
HSC3當(dāng)前值=預(yù)置值中斷 |
||
20 |
29 |
HSC4當(dāng)前值=預(yù)置值中斷 |
||
21 |
30 |
HSC4計數(shù)方向改變 |
||
22 |
31 |
HSC4外部復(fù)位 |
||
23 |
33 |
HSC5當(dāng)前值=預(yù)置值中斷 |
||
定時中斷 |
0 |
10 |
定時中斷0 |
定時 |
1 |
11 |
定時中斷1 |
||
2 |
21 |
定時器T32 CT=PT中斷 |
定時器 |
|
3 |
22 |
定時器T96 CT=PT中斷 |
表3 中斷隊列的最多中斷個數(shù)和溢出標(biāo)志位
隊列 |
CPU 221 |
CPU 222 |
CPU 224 |
CPU 226和CPU 226XM |
溢出標(biāo)志位 |
通訊中斷隊列 |
4 |
4 |
4 |
8 |
SM4.0 |
I/O中斷隊列 |
16 |
16 |
16 |
16 |
SM4.1 |
定時中斷隊列 |
8 |
8 |
8 |
8 |
SM4.2 |