西門(mén)子S7-200 PLC 學(xué)習筆記【工控老鬼轉載】
原文轉載于中國工控網(wǎng)論壇,感謝原文作者的總結,總結的正確性先且不談,學(xué)習就需要這種精神!原文地址:http://bbs.gongkong.com/Details/201210/2012103018330300001-1.shtml
聲明:以下資料摘自1.西門(mén)子200那個(gè)深入淺出 2. 200那個(gè)《Micro ‘nPower> 3.廖老師編寫(xiě)的那個(gè)《PLC編程及應用》4.200的編程手冊以及編程軟件幫助5.看過(guò)的各種講S7-200PL的書(shū)籍。
(一)問(wèn)題自由口通信功能的用途:
1.通過(guò)RS-232或RS-485串口連接多種智能儀表或RTU,根據智能儀表或RTU定義的通信協(xié)議編寫(xiě)用戶(hù)程序與智能儀表或RTU通信
2.使用USS協(xié)議與西門(mén)子MicroMaster系列變頻器通信,STEP7-Micro/WIN提供USS協(xié)議庫,S7-200CPU是主站,變頻器是從站。
3.創(chuàng )建用戶(hù)程序來(lái)模擬另外一種網(wǎng)絡(luò )上的從站器件。例如S7-200的用戶(hù)程序模仿一個(gè)Modbus從站。STEP7-Micro/WIN提供Modbus協(xié)議庫。
4.采用自定義通信協(xié)議與PC通信。PC上的應用軟件可以采用此方法方便的訪(fǎng)問(wèn)S7-200的數據。這曾經(jīng)是第三方軟件訪(fǎng)問(wèn)S7-200PLC比較簡(jiǎn)便,廉價(jià)的方法。不過(guò)現在西門(mén)子提供了PCACCESS軟件,一個(gè)連接S7-200系列PLC的OPC服務(wù)器。這是PC與S7-200PLC連接更好的選擇。
(二) 問(wèn)題
S7-200 的內存格式與我們常用的 PC機正好相反,它是高字在前,低字在后的。所以我們可以將字變量放在后兩個(gè)字節,在程序初始化時(shí)將前兩個(gè)字節清零(程序的其它地方不得使用這兩個(gè)字節)。
如我們定義符號時(shí)將字變量定義在 VW2,同時(shí)保持 VW0 的值為零。則程序中可以用 VW2 以字型訪(fǎng)問(wèn)該變量,同時(shí)也可以 VD0以雙字型訪(fǎng)問(wèn),避免了類(lèi)型轉換。
為了避免使用時(shí)混淆,最好以明確的符號定義來(lái)區分字類(lèi)型和雙字類(lèi)型。在此強烈推薦類(lèi)匈牙利命名法:以前綴指示變量類(lèi)型,用首字母大寫(xiě)的有意義的英文單詞的組合作變量名。本人習慣用以下綴:
b ---- 字節型變量(byte)
w ---- 字型變量(word)
d ---- 雙字變量(double)
r---- 實(shí)型變量(real)
f ---- 位變量(flag)
btn --- 自復位按鈕式輸入(button)
sw ---- 切換開(kāi)關(guān)或自鎖按鈕輸入(switch)
sig --- 傳感器、編碼等電平信號輸入(signal)
rly --- 輸出繼電器位(relay)
……
當然,這個(gè)根據個(gè)人習慣來(lái),沒(méi)有定則,主要是利于自己區分。
假如有一個(gè)字類(lèi)型變量名為 VarName,為使用前面的轉換技巧,我們可以這樣定義:
wVarName ---- VW2
dVarName---- VD0
在程序初始化時(shí)將 VW0 清零(如果是不需要記憶的變量,直接將 dVarName 清零也可)或者在數據塊中將 VW0設置為零。則以后需要以字類(lèi)型訪(fǎng)問(wèn)變量時(shí)就用 wVarName,需要以雙字類(lèi)型訪(fǎng)問(wèn)變量時(shí)就用dVarName。完全不需要類(lèi)型轉換。
本方法可以極大的減少程序語(yǔ)句數,使程序更簡(jiǎn)潔、可讀性更好,由于不需要做耗時(shí)的類(lèi)型轉換,程序運行效率也得到提高。且數學(xué)運算量越大,效率提高越明顯。
缺點(diǎn)是要多占用兩字節的內存,以后程序中不能使用 VW0。但 S7-200 的 RAM 空間很大,一般是用不完的,以 226為例,有多達 10K 的 RAM,偶從來(lái)沒(méi)有超過(guò) 1K。 這些 RAM都是花錢(qián)買(mǎi)來(lái)的,不用白不用,不用也是浪費了。
同理,如果有字節型變量經(jīng)常需要與字類(lèi)型變量相互轉換,讓字節變量占用一個(gè)字的內存寬度浪費一個(gè)字節,避免類(lèi)型轉換。
(三) 問(wèn)題
S7-200 CN CPU 必須配合 STEP 7-Micro/WIN V4.0 SP3 或以上版使用。STEP7-Micro/WIN V4.0 SP3 配合 S7-200 CN 使用時(shí),必須設置語(yǔ)言環(huán)境為中文才能正常工作。
STEP 7-Micro/WIN V4.0 SP3 離線(xiàn)編程時(shí)不能在“PLC > 類(lèi)型”中選擇到S7-200 CN CPU。用戶(hù)可以選擇相應的 SIMATIC S7-200 CPU,并選擇 CPU 固件版本號為2.01。在線(xiàn)通信時(shí),Micro/WIN 可以自動(dòng)識別 S7-200 CN CPU。
PC Access 使得S7-200與PC機間的數據交換簡(jiǎn)單而完美。PC Access作為S7-200的OPC服務(wù)器,也就是說(shuō):
使用MS Excel可以讀/寫(xiě)S7-200的數據
ProToolPro,
WinCC flexible RT, WinCC,
WonderWare等
可以作為OPC客戶(hù)端訪(fǎng)問(wèn)S7-200
可視化的界面
支持以下任一種連接方式,最多可建立8個(gè)通信連接(連接8個(gè)CPU):
PPI(智能多主站電纜)
Modem(EM241)
Ethernet/IT CP(CP243-1,CP243-1IT)
PC Access將取代老的S7-200 OPC Server。
(四) 問(wèn)題
如果在不同的數據分頁(yè)中定義的數據地址重疊,編譯時(shí)Micro/WIN會(huì )自動(dòng)指出以避免錯誤。在消息輸出窗口中用鼠標雙擊錯誤提示文字會(huì )自動(dòng)跳到相應出錯的地址。
CPU22x的版本21——22——23版。
注意:在給CPU進(jìn)行供電接線(xiàn)時(shí),一定要特別小心分清是哪一種供電方式,如果把220VAC接到24VDC供電的CPU上,或者不小心接到24VDC傳感器輸出電源上,都會(huì )造成CPU的損壞。
S7-200 CPU的中央處理芯片數據長(cháng)度為32位。
從CPU累加器AC0/AC1/AC2/AC3的數據長(cháng)度也可以看出。
(五) 問(wèn)題
表1. CPU的供電能力
CPU型號 | 電流供應 |
+5VDC | +24VDC |
CPU221 | 0 mA | 180mA |
CPU222 | 340 mA | 180mA |
CPU224/224 XP | 660 mA | 280mA |
CPU226/226 XM | 1000 mA | 400mA |
表2. CPU上及擴展模塊上的數字量輸入所消耗的電流
CPU上及擴展模塊上的數字量 | 電流需求 |
+5VDC | +24VDC |
每點(diǎn)輸入 | - | 4mA/每輸入 |
表3. 數字擴展模塊所消耗的電流
數字擴展模塊型號 | 電流需求 |
+5VDC | +24VDC |
EM 221 DI 8 x 24VDC | 30 mA | 4 mA/輸入 |
EM 221 DI 8 x120/230VAC | 30 mA | - |
EM 221 DI 16 x 24VDC | 70 mA | 4 mA/輸入 |
EM 222 DO4 x 24VDC-5A | 50 mA | - |
EM 222 DO 4 xRelays-10A | 40 mA | 20mA/輸出 |
EM 222 DO8 x 24VDC | 30 mA | - |
EM 222 DO 8 x Relays | 40 mA | 9mA/輸出 |
EM 222 DO 8 x120/230VAC | 110 mA | - |
EM 223 24VDC 4 In/4 Out | 40 mA | 4 mA/輸入 |
EM 223 24VDC 4 In/4Relays | 40 mA | 4 mA/輸入 9mA/輸出 |
EM 223 24VDC 8 In/8 Out | 80 mA | 4 mA/輸入 |
EM 223 24VDC 8 In/8Relays | 80 mA | 4 mA/輸入 9 mA/輸出 |
EM 223 24VDC 16 In/16Out | 160 mA | 4 mA/輸入 |
EM 223 24VDC 16 In/16Relays | 150 mA | 4 mA/輸入 9mA/輸出 |
EM 223 24VDC 32 In/32Out | 240 mA | 4 mA/輸入 |
EM 223 24VDC 32 In/32Relays | 205 mA | 4 mA/輸入 9mA/輸出 |
表4. 模擬擴展模塊所消耗的電流
模擬擴展模塊訂貨號 | 電流需求 |
+5VDC | +24VDC |
EM 231 4 Inputs | 20 mA | 60 mA |
EM 231 8 Inputs | 20 mA | 60 mA |
EM 232 2 Outputs | 20 mA | 70 mA |
EM 232 4 Outputs | 20 mA | 60 mA |
EM 235 4 Inputs / 1Output | 30 mA | 60 mA |
表5. TC(熱電偶)和RTD(熱電阻)模塊所消耗的電流
熱電偶和熱電阻模塊型號 | 電流需求 |
+5VDC | +24VDC |
EM 231 TC, 4 Inputs | 87 mA | 60 mA |
EM 231 TC, 8 Inputs | 87mA | 60mA |
EM231 RTD, 2 Inputs | 87 mA | 60 mA |
EM231 RTD, 4 Inputs | 87 mA | 60 mA |
表6. 智能模塊所消耗的電流
智能模塊訂貨號 | 電流需求 |
+5VDC | +24VDC |
EM277 | 150 mA | - |
30 mA;通信端口激活時(shí) |
60 mA;通信端口加90mA/5V負載時(shí) |
180mA;通信端口加120mA/24V負載時(shí) |
EM241 | 80 mA | 70 mA |
EM253 | 190mA | 不一定,詳見(jiàn)技術(shù)數據 |
CP243-1 | 55 mA | 60 mA |
CP243-1 IT | 55 mA | 60 mA |
CP243-2 | 220 mA | 100 mA |
注意:
EM277模塊本身不需要24VDC電源,這個(gè)電源是專(zhuān)供通信端口用的。24VDC電源需求取決于通信端口上的負載大小。
CPU上的通信口,可以連接PC/PPI電纜和TD 200并為它們供電,此電源消耗已經(jīng)不必再納入計算。
(六) 問(wèn)題
CPU224和CPU226具有內置實(shí)時(shí)時(shí)鐘,CPU221和CPU222需要外接時(shí)鐘電池卡才能使用實(shí)時(shí)時(shí)鐘。全新的CPU需要設置,時(shí)鐘才能開(kāi)始正常走動(dòng)。
(七) 問(wèn)題
您應當確保帶符號的數字用作不帶符號的指令時(shí)不得超出正負數界限。若無(wú)法確保不帶符號的數字用作帶符號的指令時(shí)不超出正負數界限,可能致使程序或控制器操作出現無(wú)法預測的結果。無(wú)法預測的控制器操作可能導致人員死亡或嚴重傷害及/或財產(chǎn)嚴重損壞。請務(wù)必核實(shí)不帶符號的數字用作帶符號的指令時(shí)不得超出正負數界限。
欲間接存取字節,將指針用一遞增或遞減。欲間接存取字,將指針用二遞增或遞減。欲間接存取雙字,將指針用四遞增或遞減。如果您從使終止位置超出V內存上限的起始位置遞增雙字,程序執行時(shí)會(huì )收到一則運行時(shí)間錯誤信息。欲存取定時(shí)器或計數器當前值(此為字數值),將指針用二遞增或遞減。
(八) 問(wèn)題
對于 TD400C,行長(cháng)度取決于所選的字體。 如果選擇了小字體,則每行 24 個(gè) ASCII 字符或 12個(gè)中文字符。如果選擇了大字體,則每行 16 個(gè) ASCII 字符或 8 個(gè)中文字符。
(九) 問(wèn)題
Modbus RTU 主站功能編程
1. 調用 Modbus RTU主站初始化和控制子程序
2. 調用 Modbus RTU主站讀寫(xiě)子程序MBUS_MSG,發(fā)送一個(gè)Modbus 請求
3. 在 CPU 的 V 數據區中為庫指令分配存儲區(LibraryMemory)
4. 連接S7-200CPU上的端口0(或端口1,對于端口1庫)和Modbus從站設備之間的通訊電
纜。
(十) 問(wèn)題
一個(gè)正規的RS-485網(wǎng)絡(luò )使用終端電阻和偏置電阻。在網(wǎng)絡(luò )連接線(xiàn)非常短、臨時(shí)或實(shí)驗室測試時(shí)也可以不使用終端和偏置電阻。
終端電阻:在線(xiàn)型網(wǎng)絡(luò )兩端(相距最遠的兩個(gè)通信端口上),并聯(lián)在一對通信線(xiàn)上的電阻。根據傳輸線(xiàn)理論,終端電阻可以吸收網(wǎng)絡(luò )上的反射波,有效地增強信號強度。兩個(gè)終端電阻并聯(lián)后的值應當基本等于傳輸線(xiàn)在通信頻率上的特性阻抗
偏置電阻:偏置電阻用于在電氣情況復雜時(shí)確保A、B信號的相對關(guān)系,保證“0”、“1”信號的可靠性
西門(mén)子的PROFIBUS網(wǎng)絡(luò )連接器已經(jīng)內置了終端和偏置電阻,通過(guò)一個(gè)開(kāi)關(guān)方便地接通或斷開(kāi)。終端和偏置電阻的值完全符合西門(mén)子通信端口和PROFIBUS電纜的要求。
合上網(wǎng)絡(luò )中網(wǎng)絡(luò )插頭的終端電阻開(kāi)關(guān),可以非常方便地切斷插頭后面的部分網(wǎng)絡(luò )的信號傳輸。
與其他設備通信時(shí)(采用PROFIBUS電纜),對方的通信端口可能不是D-SUB9針型的,或者引腳定義完全不同。如西門(mén)子的MM4x0變頻器,RS-485通信口采用端子接線(xiàn)形式,這種情況下需要另外連接終端電阻,西門(mén)子可以提供一個(gè)比較規整的外接電阻。對于其他設備,可以參照《S7-200系統手冊》上的技術(shù)數據制作。
西門(mén)子網(wǎng)絡(luò )插頭中的終端電阻、偏置電阻的大小與西門(mén)子PROFIBUS電纜的特性阻抗相匹配,強烈建議用戶(hù)配套使用西門(mén)子的PROFIBUS電纜和網(wǎng)絡(luò )插頭??梢员苊庠S多麻煩。
記住聯(lián)網(wǎng)的格言:你糊弄它,它就糊弄你!
(十一)問(wèn)題
STEP7--Micro/WIN指令庫包含有專(zhuān)門(mén)為Modbus通訊設計的預組態(tài)的子程序和中斷服務(wù)程序,使得與Modbus主站和從站設備進(jìn)行通訊簡(jiǎn)單易行。
Modbus從站指令可以將S7-200組態(tài)為Modbus RTU從站設備,與Modbus主站設備進(jìn)行通訊。
Modbus主站指令可以將S7-200組態(tài)為ModbusRTU主站設備,與一個(gè)或多個(gè)Modbus從站設備進(jìn)行通訊。
Modbus指令安裝在STEP7--Micro/WIN指令樹(shù)的庫文件夾中。這些指令使S7-200可以作為Modbus設備。當將Modbus指令放置在用戶(hù)程序中時(shí),會(huì )有一個(gè)或多個(gè)相關(guān)的子程序自動(dòng)添加到您的項目中。
存在兩個(gè)版本的Modbus主站協(xié)議庫。一個(gè)版本使用CPU的端口0,另一個(gè)版本則使用CPU的端口1。
端口1庫在POU名稱(chēng)后面附加了一個(gè)_P1(例如,MBUS_CTRL_P1),用于表示POU使用的是
CPU上的端口1。在所有其他方面,這兩個(gè)Modbus主站庫都完全相同。
Modbus從站庫僅支持端口0通訊。