plc通訊原理和程序設(shè)計(jì)
通訊程序設(shè)計(jì)在自動(dòng)化系統(tǒng)的應(yīng)用越來越廣泛,例如plc與操作界面的數(shù)據(jù)交換,通過通訊對(duì)變頻器的控制,plc的連網(wǎng)等等。
要想實(shí)現(xiàn)plc的通訊編程,首先所選的plc必須有強(qiáng)大的通訊能力,就是說plc的操作系統(tǒng)能夠支持多種通訊格式,通常一種品牌的plc如果能夠提供給用戶更多的編程自由度,那么這種品牌的技術(shù)開發(fā)能力就越強(qiáng)大,大多數(shù)品牌只能提供固定格式的通訊格式或協(xié)議,這就大大局限了plc與其他智能設(shè)備的數(shù)據(jù)交換。
我們的plc產(chǎn)品具有RS232和光電隔離的RS485兩個(gè)自由通訊口,兩個(gè)通訊口可以同時(shí)收發(fā)數(shù)據(jù),幾乎可以適應(yīng)所有通訊格式,可以提供CRC和BCC等多種校驗(yàn)方式。
以一臺(tái)PLC通過485通訊控制多個(gè)某品牌的變頻器為例:
如果該變頻器的波特率是9600b/s,8個(gè)數(shù)據(jù)位,奇校驗(yàn),1個(gè)停止位。那么首先必須在plc的嵌入C窗口的初始化代碼區(qū)編程一個(gè)通訊口設(shè)置語句:Set485Port(9600,o,8,1);僅僅一個(gè)語句就完成了對(duì)485通訊口的編程。
由于485通訊必須設(shè)定主從關(guān)系,這里是plc控制多臺(tái)變頻器,所以plc必須設(shè)置為主,因此還需在初始化代碼區(qū)增加一個(gè)地址和主從設(shè)定語句:SetAddress(1,MASTER);事實(shí)上,對(duì)于主控制器來說,地址已經(jīng)失去意義。
通訊口已經(jīng)設(shè)置完畢,下面就是如何根據(jù)要求將數(shù)據(jù)發(fā)送給變頻器。
例如一組8字節(jié)控制數(shù)據(jù)如下所示:
01h ---->變頻器編號(hào)
03h ---->命令
21h ---->兩字節(jié)參數(shù)地址
02h
00h ---->兩字節(jié)參數(shù)
02h
CRC --->兩字節(jié)CRC校驗(yàn)馬
CRC
PLC程序:
Set485TBAddPointer(0);
AddNumberTo485TB(0x1);
AddNumberTo485TB(0x3);
AddNumberTo485TB(0x21);
AddNumberTo485TB(0x2);
AddNumberTo485TB(0x0);
AddNumberTo485TB(0x2);
AddCRCTo485TB();
Start485Transmit();