plc通讯的握手信号_基于Modbus协议实现PLC与智能仪表的通讯
1?引言
Modbus?協(xié)議是法國施耐德公司推出的一個(gè)全開放的“主從式(Master/Slave)”通訊協(xié)議,其本意在于實(shí)現(xiàn)上位機(jī)(主設(shè)備)對(duì)PLC(從設(shè)備)內(nèi)部存儲(chǔ)區(qū)域的“直接”讀寫操作,無需用戶對(duì)PLC進(jìn)行通訊編程。隨著工業(yè)自動(dòng)化技術(shù)的不斷發(fā)展,Modbus協(xié)議現(xiàn)已不僅僅局限于應(yīng)用在PLC/上位機(jī)之間的通訊上,許多智能儀表廠商也紛紛采用該協(xié)議作為自己產(chǎn)品的通訊協(xié)議。與此同時(shí),PLC也由以前單純的I/O控制發(fā)展成為集控制、數(shù)據(jù)采集、通訊為一身,在越來越多的自動(dòng)化工程中,PLC需要取代上位機(jī),作為“主設(shè)備”來完成與智能儀表或其它支持該協(xié)議的PLC的通訊。針對(duì)這一情況,施耐德公司在其編程軟件Concept2.2+補(bǔ)丁程序Service?Release2中增加了一條功能強(qiáng)大的通訊指令XXMIT。通過該指令,用戶可以將施耐德Modicon系列PLC上的原Modbus?Slave通訊口作為Modbus?Master口或標(biāo)準(zhǔn)串口來使用,大大擴(kuò)展了Modicon系列PLC的通訊功能。本文將結(jié)合實(shí)例對(duì)該指令的Modbus?Master使用方法做一些介紹,以供廣大過程技術(shù)人員參考。
2?XXMIT指令基本參數(shù)介紹
2.1?基本參數(shù)概述
基本參數(shù)列表
2.2?重要參數(shù)說明
2.2.1?Command參數(shù)
該參數(shù)的16個(gè)為位用于設(shè)置通訊口的不同工作方式[page]
Bit1-Bit4:?使用Modem時(shí)需設(shè)定的相關(guān)參數(shù)
Bit5:?是否使用XON/XOFF流控制。設(shè)為1時(shí)表示使用XON/XOFF流控制
Bit6:?是否使用RTS/CTS握手信號(hào)。設(shè)為1時(shí)表示允許使用RTS/CTS信號(hào)
Bit7:?是否清除“Back?Space”字符。設(shè)為1時(shí)表示在“Simple?ASCII?Input”和“Terminated
ASCII?Input”模式下,清除MsgIn中的“Back?Space”字符
Bit8:?是否接管通訊口FIFO緩沖區(qū)。設(shè)為1時(shí)表示XXMIT指令接管通訊口FIFO緩沖區(qū)的控制
Bit9:?是否啟用Modbus模式。設(shè)為1時(shí)表示通訊口工作在Modbus?Master模式下
Bit10:?是否啟用標(biāo)準(zhǔn)串口模式。設(shè)我1時(shí)表示通訊口工作在標(biāo)準(zhǔn)串口模式下
注:Bit9,Bit10不能同時(shí)設(shè)為1
Bit11:?是否啟用“Simple?ASCII?Input”模式,設(shè)為1時(shí)表示啟用
Bit12:?是否啟用“Terminated?ASCII?Input”模式,設(shè)為1時(shí)表示啟用
Bit13:?不用
Bit14:?是否啟用RS485模式。設(shè)為1時(shí)表示啟用。只有在使用Modicon?Momentum系列PLC時(shí),該位才設(shè)為1
Bit15:?是否啟用RTS/CTS?Modem控制。設(shè)為1時(shí)表示啟用
Bit16:?不用
2.2.2?Msgout參數(shù)
該參數(shù)中存放需發(fā)送的字符或數(shù)據(jù)。通常在Concept中用一個(gè)WORD型數(shù)組來給該參數(shù)賦值。當(dāng)通訊口工作在Modbus?Master模式下時(shí),需按Modbus?RTU的格式來給該參數(shù)賦值,但不含CRC校驗(yàn)值,具體的格式見下表
2.2.3?Port參數(shù)
只要使用Modicon?Momentum系列PLC時(shí),該參數(shù)才被設(shè)為2,否則該參數(shù)的值都被設(shè)定為1,表示用Port1進(jìn)行通訊。
3?實(shí)例
下面的例子為筆者在西寧寺溝口水電廠機(jī)組監(jiān)控項(xiàng)目中,用Modicon?Compact?PLC與MP6000智能功率儀表通訊的程序,基此來對(duì)XXMIT指令的使用做更進(jìn)一步的說明。
3.1?工程要求
通過PLC從MP6000智能儀表中讀取機(jī)組當(dāng)前的有功功率、無功功率等數(shù)據(jù)。
3.2?硬件情況:
PLC:?施耐德Modicon?Compact系列PLC,CPU型號(hào)為TSX?PC-E984-265
智能儀表:MP6000功率表
通訊協(xié)議:Modbus協(xié)議
3.3?軟件情況:
PLC編程軟件:Concept2.2+Service?Release2
編程方式:ST文本編程
MP6000的數(shù)據(jù)區(qū)情況:把MP6000儀表中從第一個(gè)地址開始的64個(gè)數(shù)據(jù)讀出來
PLC的數(shù)據(jù)區(qū):從MP6000讀出的數(shù)據(jù)寫入PLC?40031開始的64個(gè)寄存器中[page]
3.4?程序:
VAR
XXMIT_MB?:?XXMIT;
SET_CMD?:?SET_BIT;
END_VAR
SET_CMD?(IN?:=?1,(*?BOOL*)
NO?:=9?(*?UINT*));?(*把Command參數(shù)的bit9置1,讓通訊口工作在Modbus?Master模式下*)
XXMIT_CMD:=SET_CMD.RES;
XXMIT_MSGOUT[1]:=3;?(***MODBUS功能碼?***)
XXMIT_MSGOUT[2]:=64;?(***需從MP6000中讀取的寄存器的數(shù)量?***)
XXMIT_MSGOUT[3]:=5;?(***MP6000的地址***)
XXMIT_MSGOUT[4]:=1;?(***MP6000中數(shù)據(jù)的起始地址***)
XXMIT_MSGOUT[5]:=31;?(***將讀取的數(shù)據(jù)寫入PLC從40031開始的64個(gè)寄存器中?***)
XXMIT_MB?(Start?:=1,?(*?BOOL?*)
Command?:=XXMIT_CMD?,?(*?WORD?*)
MsgOut?:=XXMIT_MSGOUT?,?(*?ANY?*)
MsgLen?:=5?,?(*?INT?*)
Port?:=1?,?(*?BYTE?*)
Baudrate?:=9600?,?(*?INT?*)
Databits?:=8?,?(*?BYTE?*)
Stopbits?:=1?,?(*?BYTE?*)
Parity?:=2?,?(*?BYTE?*)
RespTout?:=1000?,?(*?INT?*)
RetryLmt?:=20?,?(*?INT?*)
StartDly?:=0,?(*?INT?*)
EndDly?:=0?(*?INT?*));
參考文獻(xiàn):
1、?宋德玉.可編程控制器原理及應(yīng)用系統(tǒng)設(shè)計(jì).北京:冶金工業(yè)出版社,1999
2、?曾繁泰等.可編程器件應(yīng)用導(dǎo)論.北京:清華大學(xué)出版社,2001
本網(wǎng)站轉(zhuǎn)載的所有的文章、圖片、音頻視頻文件等資料的版權(quán)歸版權(quán)所有人所有,本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如果本網(wǎng)所選內(nèi)容的文章作者及編輯認(rèn)為其作品不宜公開自由傳播,或不應(yīng)無償使用,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。
總結(jié)
以上是生活随笔為你收集整理的plc通讯的握手信号_基于Modbus协议实现PLC与智能仪表的通讯的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用C#编写三角形面积计算程序(附源码)
- 下一篇: 在VIM中添加一键编译和一键运行