利用編程口實現(xiàn)三菱PLC遠距離通訊的方法
2003/11/24 0:00:00
MITSUBISHI PLC是三菱公司生產(chǎn)的可編程序控制器,由于該產(chǎn)品體積小,結(jié)構(gòu)緊湊,性能可靠,易編程,系列全(根據(jù)被控對象的復(fù)雜程度,選用相應(yīng)容量的PLC)等優(yōu)點,而被廣泛應(yīng)用于各種場合和生產(chǎn)過程的現(xiàn)地控制中,可實現(xiàn)開關(guān)量采集、輸出,模擬量采集和輸出等功能。在實際應(yīng)用中,有時往往需要實現(xiàn)遠方控制和監(jiān)視,因此PLC的長距離通訊問題具有實用性。這里介紹兩種PLC遠距離通訊方法。 我們先來分析一下PLC的特性。 一、FX2系列PLC通訊接口的物理特性 PLC裝置上帶有一個25針RS-422編程口,該口主要用于對PLC進行編程和調(diào)試。接口如示: 端口信號定義如下: RXD:接收數(shù)據(jù)(Received Data) TXD: 發(fā)送數(shù)據(jù) Transmitted Data) DTR: 數(shù)據(jù)終端準備就緒(Data Terminal Ready) DSR:數(shù)據(jù)裝置就緒(Data Set Ready) PWE: PLC數(shù)據(jù)接收允許 在用PC機或便攜機對PLC進行編程和調(diào)試時,必須用一根專用通信電纜與之通信,當編程調(diào)試結(jié)束后,該口即處于閑置狀態(tài)。要想實現(xiàn)PLC長距離數(shù)據(jù)通訊,一種方法是采用PLC通訊擴展模件,這要增加額外的開銷,另一種方法就是利用其自身的編程口,也能達到同樣的效果,同時可節(jié)省開銷。出于保密等某種因素,PLC編程電纜的接口電路部分用強力膠密封,用戶無法查看。通過對其接口的分析和試驗,找到了用四線制方式實現(xiàn)PLC通訊的連接方法,即用PLC的4個引腳RXD(R+、R-)、TXD(T+、T-)經(jīng)長線與PC側(cè)的長線收發(fā)器相連接,通過長線收發(fā)器把信號轉(zhuǎn)換為RS-232后與PC的串口相連。其接口如圖2如示。 應(yīng)當指出的是為了使PLC始終處于“數(shù)據(jù)裝置就緒”狀態(tài),我們?nèi)藶閷?腳和7腳短接,同樣為了使PLC能接受主機的命令,也將21腳和20腳短接。 在實際應(yīng)用中,PC機通常要與若干個PLC通訊,單個串口是實現(xiàn)不了的,此時需擴展端口來實現(xiàn)。選用MOXA Intellio C218 Turbo 系列串口卡帶Opt8F連接盒可實現(xiàn)與8個PLC相連。 Opt8F 是一個8串口RS-422、DB25孔式連接盒,帶光電隔離 。信號定義: TxD+(3)/-(16), RxD+(2)/-(14), GND(7) ,具備LED可監(jiān)看每個串口的TxD, RxD ;含1.5m DB62轉(zhuǎn)DB62接頭的電纜線,光電隔離最大可達500V ,數(shù)據(jù)傳輸速率: 50 bps ~ 115.2 Kbps。 硬件連接如圖所示: 如果PLC超過8個,可再擴展一塊C218卡。 這里,也可以選用MOXA系列C168卡,不過它的8串口是RS-232口,需外加長線收發(fā)器將 RS-422轉(zhuǎn)為RS-232后才能連到8串口上,連接方式同圖-2。 二、 PLC 通訊機制 1.PLC通訊口參數(shù) 波特率:9600比特/秒 校驗方式:偶校驗 停止位:1位 校驗位:1位 傳輸方式:異步7位字符方式 2.PLC數(shù)據(jù)幀格式 PLC有三種通用寄存器:D寄存器、X寄存器、Y寄存器。D寄存器為數(shù)據(jù)寄存器,可存放雙字節(jié)整數(shù),X寄存器為輸入位寄存器,字長8位,每一位對應(yīng)一個開關(guān)量輸入點;Y寄存器為8位輸出寄存器,字長8位,每一位對應(yīng)一個開關(guān)量輸出點;通過這三種寄存器,即可進行模擬量、開關(guān)量的采集,以及開出控制。 PLC的通訊是完全被動的半雙工通訊,要實現(xiàn)PLC數(shù)據(jù)的遠傳,首先要了解三種寄存器讀寫數(shù)據(jù)的幀格式,按照這個格式通過上位機對它發(fā)讀或?qū)懨睿ㄔ谲浖幸话阌脭?shù)組來存放該命令報文),PLC根據(jù)命令的性質(zhì)作出響應(yīng)。歸納起來只有兩種:寄存器讀和寫命令。其幀格式如下: 讀命令幀格式: 寫命令幀格式: (注:這里的高位指一個字節(jié)的高半字節(jié),即高四位;低位指低半字節(jié),以下同) STX:報文起始標志 EXT:報文結(jié)束標志。 被讀的寄存器的組地址為4位ASCII碼,可從PLC手冊中查到。一次最多讀出64個字節(jié)。 通訊開始時,主機首先向PLC發(fā)查詢代碼ENQ(05H),如果PLC正常接收,則PLC回送確認代碼ACK(06H)作為應(yīng)答,表示通訊建立,可以對PLC進行讀、寫命令。如果PLC不能識別命令,則返回NAK(15H)。應(yīng)當注意的是PLC的響應(yīng)有一定的延時(3秒以內(nèi)),在收到命令后,PLC要在執(zhí)行完下一周期END指令后方才響應(yīng),因此主機在軟件上應(yīng)考慮延時讀數(shù)和三次重發(fā)。 PLC響應(yīng)后的數(shù)據(jù)格式: 校驗和的計算,以D寄存器的讀報文為例 讀D123寄存器,地址為10F6H,讀4個字節(jié): 校驗和是報文內(nèi)CMD和ETX中間(包括CMD和ETX)各字節(jié)之和,上面報文校驗和=30H+31H+30H+46H+36H+30H+34H+03H= 174H,取后兩位74H,即為校驗和,用ASCII碼表示就是:37H和34H。 例如D寄存器中的數(shù)據(jù)為D123:1234H , D124:ABCDH,則PLC響應(yīng)后,向PC發(fā)送數(shù)據(jù)報文為: 3、軟件 PC機COM1端口初始化程序(與PLC端口參數(shù)一致) ........ outputb(0x3fb,0x80); /*通訊線控制寄存器控制字,訪問波特率除數(shù)鎖存器*/ outpoutb(0x3f8,0x0c); /*除數(shù)鎖存器控制字低位,定波特率*/ outportb(0x3f9,0x00); /*除數(shù)鎖存器控制字高位,定波特率*/ outportb(0x3fb,0x1a); /*通訊線控制寄存器控制字,定數(shù)據(jù)格式*/ outportb(0x3fc,0x03); /*MODEM控制寄存器控制字*/ ...... port_test: outportb(0x3f8,ENQ); do { in=inportb(0x3fd); }while(!in&0x01); in=inportb(0x3f8); if(in==NAK) { printf("Error NAK!\r\n"); goto port_test } if(in!=ACK) {printf("NOT RECEIVED ACK!\r\n"); goto port_test; } ....... 8串口方式的端口初始化程序: ......... stat=sio_reset(); stat=sio_open(port); stat=sio_ioctl(port,B9600,P_EVEN|BIT-7|STOP_1); port_test: stat=sio_putch(port,0x05); in=sio_getch(port); if(in!=0x06) goto port_test .......... 三、結(jié)束語 以上的軟硬件方案已在漫灣電廠壩區(qū)閘門的數(shù)據(jù)采集和控制中得到應(yīng)用,實現(xiàn)了單臺工控機與10余臺PLC的通訊,并與監(jiān)控系統(tǒng)相連,實現(xiàn)了壩區(qū)閘門的遠方監(jiān)視和控制,數(shù)據(jù)通信可靠。
提交
查看更多評論
其他資訊
PLC一體機之EK溫度修正使用技巧
S7-300CPU存儲器介紹及存儲卡使用
0.05級超高精度互感器
DC-DC轉(zhuǎn)換器(電源模塊)應(yīng)用指南——外接濾波電容選配
施羅德最小流量閥的應(yīng)用范圍及優(yōu)點