1) 通信性能:PROFIBUS-DP使用令牌方式由主站依次訪問(wèn)從站,,是實(shí)時(shí)現(xiàn)場(chǎng)總線,,通信響應(yīng)快,通信的響應(yīng)時(shí)間應(yīng)考慮PAC3200數(shù)據(jù)的刷新時(shí)間(自身刷新時(shí)間可能較PROFIBUS-DP刷新時(shí)間慢),;如果選擇以太網(wǎng)MODBUS TCP 通信,,由于不是實(shí)時(shí)網(wǎng)絡(luò),通信性能次之,,通信的響應(yīng)時(shí)間也應(yīng)考慮PAC3200數(shù)據(jù)的刷新時(shí)間(自身刷新時(shí)間可能較以太網(wǎng)刷新時(shí)間慢),;使用RS485 MODBUS RTU通信,由于基于串口,,通信性能不能與以太網(wǎng)與PROFIBUS-DP相比較,。
2) 連接個(gè)數(shù):使用PROFIBUS-DP,基于主站的性能,,較多可以連接126個(gè)站點(diǎn),;以太網(wǎng)MODBUS TCP 通信,基于CP的連接個(gè)數(shù),,通常16個(gè),;使用RS485 MODBUS RTU,可以連接一個(gè)網(wǎng)段,,典型值31個(gè)站點(diǎn),。
3) 編程:使用PROFIBUS-DP,不需要編寫(xiě)通信程序,;使用以太網(wǎng)MODBUS TCP 通信,,需要編寫(xiě)發(fā)送接收通信程序;使用RS485 MODBUS RTU通信,,需要編寫(xiě)從站輪詢(xún)程序,,比較麻煩,如果沒(méi)有購(gòu)買(mǎi)MODBUS RTU的驅(qū)動(dòng),,還需要編寫(xiě)通信程序,。
4) 價(jià)格:PROFIBUS-DP與RS485 MODBUS RTU通信需要購(gòu)買(mǎi)選件網(wǎng)卡,而PAC3200本身集成以太網(wǎng)接口,,支持MODBUS TCP 通信,。
下面將介紹PAC3200的MODBUS TCP 通信。
3 MODBUS TCP 通信報(bào)文
MODBUS TCP 使MODBUS RTU協(xié)議運(yùn)行于以太網(wǎng),MODBUS TCP使用TCP/IP和以太網(wǎng)在站點(diǎn)間傳送MODBUS報(bào)文,,MODBUS TCP結(jié)合了以太網(wǎng)物理網(wǎng)絡(luò)和網(wǎng)絡(luò)標(biāo)準(zhǔn)TCP/IP以及以MODBUS作為應(yīng)用協(xié)議標(biāo)準(zhǔn)的數(shù)據(jù)表示方法,。MODBUS TCP通信報(bào)文被封裝于以太網(wǎng)TCP/IP數(shù)據(jù)包中。與傳統(tǒng)的串口方式,,MODBUS TCP插入一個(gè)標(biāo)準(zhǔn)的MODBUS報(bào)文到TCP報(bào)文中,,不再帶有數(shù)據(jù)校驗(yàn)和地址,如圖1所示:

圖2 通信界面
2):使用F4(Edit)鍵對(duì)選中的條目進(jìn)行編輯,,在通信界面中設(shè)定MODBUS TCP 通信的IP地
址,、子網(wǎng)掩碼及網(wǎng)關(guān),在“PROTOCOL”中選擇“TCP”后退出,,PAC3200側(cè)設(shè)置完成,。
7 PLC側(cè)設(shè)置
在PLC側(cè)作的設(shè)置是為了與PAC3200建立TCP連接,以S7-300為例,,步驟如下:
1):在SIMATIC Manager中創(chuàng)建一個(gè)S7-300的項(xiàng)目,,本例中項(xiàng)目名為MODBUS_TCP。
2):插入一個(gè)S7-300站,,從硬件目錄中插入CP343-1,,本例為CP343-1IT,如圖3所示:

圖3 插入以太網(wǎng)模塊
3):雙擊CP343-1的PN IO 槽,,配置IP地址,、子網(wǎng)掩碼,CP343-1的IP地址必須與
PAC3200在一個(gè)網(wǎng)段中,,否則需要配置路由器地址,,如圖4所示:

圖4 設(shè)置CP地址參數(shù)
4):在硬件界面中點(diǎn)擊“Options”->“configure network”進(jìn)入網(wǎng)絡(luò)連接界面,如圖5所示:

圖5 網(wǎng)絡(luò)配置界面
5):點(diǎn)擊CPU,,出現(xiàn)網(wǎng)絡(luò)連接表,雙擊表中任一空格,,選擇通信連接類(lèi)型,,由于CP343-1與
PAC3200使用以太網(wǎng)TCP/IP的通信方式,所以連接類(lèi)型選擇為“TCP CONNECTION”,,如
圖6所示:
ACT :沿觸發(fā)信號(hào),。
ID :參考本地CPU連接表中的塊參數(shù)(圖7)。
LADDR :參考本地CPU連接表中的塊參數(shù)(圖7),。
SEND : 發(fā)送區(qū),,較大通信數(shù)據(jù)為8K字節(jié)。
LEN : 實(shí)際發(fā)送數(shù)據(jù)長(zhǎng)度,。
DONE :每次發(fā)送成功,,產(chǎn)生一個(gè)上升沿。
ERROR :錯(cuò)誤位。
STATUS:通信狀態(tài)字,。
通信函數(shù)FC6的參數(shù)含義:
ID :參考本地CPU連接表中的塊參數(shù),。
LADDR :參考本地CPU連接表中的塊參數(shù)。
RECV : 接收區(qū),。接收區(qū)應(yīng)大于等于發(fā)送區(qū),。
NDR : 每次接收到新數(shù)據(jù),產(chǎn)生一個(gè)上升沿,。
ERROR :錯(cuò)誤位,。
STATUS:通信狀態(tài)字。
LEN : 實(shí)際接收數(shù)據(jù)長(zhǎng)度,。
如何實(shí)現(xiàn)MODBUS TCP通信,,可以通過(guò)例子進(jìn)行說(shuō)明,例如讀出PAC3200設(shè)備的IP地址,,通過(guò)PAC3200的手冊(cè)可以知道,,IP地址為通信參數(shù),偏移地址(開(kāi)始地址)為63001,,占用兩個(gè)寄存器,,上面已經(jīng)介紹通信參數(shù)的讀取可以使用功能碼FC3或FC4讀出,MODBUS TCP 的報(bào)文頭(參考圖1)BMAP部分占用7個(gè)字節(jié),,協(xié)議數(shù)據(jù)單元(PDU)部分占用5個(gè)字節(jié),,那么通過(guò)通信函數(shù)FC5一共發(fā)送12個(gè)字節(jié),本例中數(shù)據(jù)發(fā)送區(qū)為DB1.DBB0~DB1.DBB11,,然后將請(qǐng)求的內(nèi)容分別賦值到DB1.DBB0~DB1.DBB11中,,請(qǐng)求報(bào)文格式如下:
DB1,DBB0=0 transaction identifier (高字節(jié)) – 為0 DB1,DBB1=0 transaction identifier(低字節(jié)) - 為0 DB1,DBB2=0 protocol identifier(高字節(jié)) = 0 DB1,DBB3=0 protocol identifier (低字節(jié)) = 0 DB1,DBB4=0 length field (高字節(jié)) = 0 (因?yàn)樗械膱?bào)文小于256) DB1,DBB5=6 后面跟隨的字節(jié)數(shù) DB1,DBB6=7 unit identifier -原從站地址,這里為任意值 |  | MPAP西門(mén)子6ES7314-6BG03-0AB0 |
DB1,DBB7=4 MODBUS 功能碼 DB1,DBB8= F6(HEX)輸入寄存器開(kāi)始地址(高字節(jié)) DB1,DBB9=19 (HEX) 輸入寄存器開(kāi)始地址(低字節(jié)) DB1,DBB10=0 輸入寄存器的個(gè)數(shù)(高字節(jié)) DB1,DBB11=2 輸入寄存器的個(gè)數(shù)(低字節(jié)) |  | PDU |
DB1.DBB0~DB1.DBB11經(jīng)過(guò)賦值請(qǐng)求信息后,,例子中M0.5每個(gè)上升沿將發(fā)送一次請(qǐng)求,,如果通信成功,通過(guò)FC6將接收到PAC3200的返回信息,,返回信息為13個(gè)字節(jié),,放入到數(shù)據(jù)接收區(qū)DB2.DBB0~DB2.DBB12中,接收?qǐng)?bào)文的格式如下:
DB2,DBB0=0 transaction identifier (高字節(jié)) – 為0 DB2,DBB1=0 transaction identifier(低字節(jié)) - 為0 DB2,DBB2=0 protocol identifier(高字節(jié)) = 0 DB2,DBB3=0 protocol identifier (低字節(jié)) = 0 DB2,DBB4=0 length field (高字節(jié)) = 0 (因?yàn)樗械膱?bào)文小于256) DB2,DBB5=7 后面跟隨的字節(jié)數(shù) DB2,DBB6=7 unit identifier -返回值 |  | MBAP |
DB2,DBB7=4 MODBUS 功能碼 DB2,DBB8= 4 返回的字節(jié)個(gè)數(shù) DB2,DBB9= C0(HEX) ,,192(DEC)**個(gè)寄存器值(高字節(jié)) DB2,DBB10=A8(HEX),168(DEC) **個(gè)寄存器值(低字節(jié)) DB2,DBB11=1 第二個(gè)寄存器值(高字節(jié)) DB2,DBB12=D(HEX),13(DEC)第二個(gè)寄存器值(低字節(jié)) |  | PDU |
1.S7-200和S7-300進(jìn)行MPI通信
S7-200 PLC與S7-300 PLC之間采用MPI通訊方式時(shí),,S7-200 PLC中不需要編寫(xiě)任何與通訊有關(guān)的程序,只需要將要交換的數(shù)據(jù)整理到一個(gè)連續(xù)的V 存儲(chǔ)區(qū)當(dāng)中即可,,而S7-300 PLC中需要在組織塊OB1(或是定時(shí)中斷組織塊OB35)當(dāng)中調(diào)用系統(tǒng)功能X_GET(SFC67)和X_PUT(SFC68),,以實(shí)現(xiàn)S7-200 PLC與S7-300 PLC之間的通訊。調(diào)用SFC67和SFC68時(shí)VAR_ADDR參數(shù)填寫(xiě)S7-200的數(shù)據(jù)地址區(qū),,由于S7-200的數(shù)據(jù)區(qū)為v區(qū),,這里需填寫(xiě) P#DB1.DBX×× BYTE n 對(duì)應(yīng)的就是S7200 V存儲(chǔ)區(qū)當(dāng)中VB××到VB(××+n)的數(shù)據(jù)區(qū),。例如交換的數(shù)據(jù)存在S7-200中VB50到VB59這10個(gè)字節(jié)當(dāng)中,VAR_ADDR參數(shù)應(yīng)為 P#DB1.DBX50.0 BYTE 10.
首先根據(jù)S7-300的硬件配置,,在STEP7當(dāng)中組態(tài)S7-300站并且下載,,注意S7-200和S7-300出廠默認(rèn)的MPI地址都是2,所以必須修 改其中一個(gè)PLC的站地址,,例子程序當(dāng)中將S7-300 MPI地址設(shè)定為2,,S7-200地址設(shè)定3,另外要分別將S7-300和S7-200的通訊速率設(shè)定一致,,可設(shè)為9.6K,,19.2K,187.5K三 種波特率,,例子程序當(dāng)中選用了19.2K的速率,。
S7-200 PLC修改MPI地址可以參考下圖
西門(mén)子6ES7148-4CA00-0AA0
PLC程序編制中的梯形圖與指令語(yǔ)句表聯(lián)合使用舉例介紹
所謂程序編制,就是用戶(hù)根據(jù)控制對(duì)象的要求,,利用PLC廠家提供的程序編制語(yǔ)言,,將一個(gè)控制要求描述出來(lái)的過(guò)程。PLC較常用的編程語(yǔ)言是梯形圖語(yǔ)言和指令語(yǔ)句表語(yǔ)言,,且兩者常常聯(lián)合使用,。
1) 梯形圖(語(yǔ)言)
梯形圖是一種從繼電接觸控制電路圖演變而來(lái)的圖形語(yǔ)言。它是借助類(lèi)似于繼電器的動(dòng)合,、動(dòng)斷觸點(diǎn),、線圈以及串、并聯(lián)等術(shù)語(yǔ)和符號(hào),,根據(jù)控制要求聯(lián)接而成的表示PLC輸入和輸出之間邏輯關(guān)系的圖形,,直觀易懂。
梯形圖中常用 圖形符號(hào)分別表示PLC編程元件的動(dòng)合和動(dòng)斷觸點(diǎn),;
用 ( ) 表示它們的線圈,。梯形圖中編程元件的種類(lèi)用圖形符號(hào)及標(biāo)注的字母或數(shù)加以區(qū)別。觸點(diǎn)和線圈等組成的獨(dú)立電路稱(chēng)為網(wǎng)絡(luò),,用編程軟件生成的梯形圖和語(yǔ)句表程序中有網(wǎng)絡(luò)編號(hào),,允許以網(wǎng)絡(luò)為單位給梯形圖加注釋。
梯形圖的設(shè)計(jì)應(yīng)注意到以下三點(diǎn):
①梯形圖按從左到右,、自上而下地順序排列,。每一邏輯行(或稱(chēng)梯級(jí))起始于左母線,,然后是觸點(diǎn)的串,、并聯(lián)接,較后是線圈,。
②梯形圖中每個(gè)梯級(jí)流過(guò)的不是物理電流,,而是“概念電流”,從左流向右,其兩端沒(méi)有電源,。這個(gè)“概念電流”只是用來(lái)形象地描述用戶(hù)程序執(zhí)行中應(yīng)滿(mǎn)足線圈接通的條件,。
③輸入寄存器用于接收外部輸入信號(hào),而不能由PLC內(nèi)部其它繼電器的觸點(diǎn)來(lái)驅(qū)動(dòng),。因此,,梯形圖中只出現(xiàn)輸入寄存器的觸點(diǎn),而不出現(xiàn)其線圈,。輸出寄存器則輸出程序執(zhí)行結(jié)果給外部輸出設(shè)備,,當(dāng)梯形圖中的輸出寄存器線圈得電時(shí),就有信號(hào)輸出,,但不是直接驅(qū)動(dòng)輸出設(shè)備,,而要通過(guò)輸出接口的繼電器、晶體管或晶閘管才能實(shí)現(xiàn),。輸出寄存器的觸點(diǎn)也可供內(nèi)部編程使用,。
2)指令語(yǔ)句表
指令語(yǔ)句表是一種用指令助記符來(lái)編制PLC程序的語(yǔ)言,它類(lèi)似于計(jì)算機(jī)的匯編語(yǔ)言,,但比匯編語(yǔ)言易懂易學(xué),,若干條指令組成的程序就是指令語(yǔ)句表。一條指令語(yǔ)句是由步序,、指令語(yǔ)和作用器件編號(hào)三部分組成,。