Modbus與第三方系統(tǒng)通訊
背景:
本文引用地址:http://2s4d.com/article/201609/303889.htm我們現(xiàn)在做鍋爐節(jié)能控制,都是在原有的控制系統(tǒng)上加上西門(mén)子的控制器,把我們的算法寫(xiě)在西門(mén)子控制器中,通過(guò)通訊的方式讀取第三方系統(tǒng)的數(shù)據(jù)運(yùn)算后把控制指令再發(fā)回去。因?yàn)?a class="contentlabel" href="http://2s4d.com/news/listbylabel/label/第三方">第三方系統(tǒng)使用的系統(tǒng)不同,目前比較多的如ABB,施耐德,GE,上海新華,和利時(shí),浙大中控等,為了實(shí)現(xiàn)和這些系統(tǒng)做的控制系統(tǒng),就要有一個(gè)比較合理的通訊方式,目前采用的是opc方式通訊。
目前采用的通訊方式:
目前采用opc方式,鍋爐也是采用母管制的,所以要同時(shí)把整個(gè)母管中鏈接的鍋爐的數(shù)據(jù)都采集過(guò)來(lái)才好,這樣數(shù)據(jù)兩比較大,在大量數(shù)據(jù)交換的情況下,速度比較好。我們現(xiàn)在在向大型鍋爐控制上轉(zhuǎn)型,大型鍋爐都是一爐一機(jī)的,針對(duì)我們的現(xiàn)在的要求不太合適,我們的特點(diǎn)是需要交換的數(shù)據(jù)量小最多兩三百點(diǎn),但是要求速度快。我們目前的通訊方式是用pc和第三方系統(tǒng)通訊然后pc和PLC通訊,pc中用wincc把讀取到的數(shù)據(jù)轉(zhuǎn)寫(xiě)到plc的變量中,wincc中如果腳本執(zhí)行的速度過(guò)快,則影響到wincc的其他的功能,所以目前最快也就是1s的周期。
目前的技術(shù)需求:
而針對(duì)一爐一機(jī)這種數(shù)據(jù)量小,要求速度快的通訊特點(diǎn),modbus通訊方式更合適,modbus是比較早的通訊協(xié)議,大多數(shù)的智能儀表都支持,控制系統(tǒng)也都支持,所以不存在無(wú)法通訊的難點(diǎn)。為了實(shí)現(xiàn)這個(gè)通訊,我于2014年的年底在江蘇阜寧澳洋熱電廠(chǎng)做了測(cè)試。
項(xiàng)目硬件需求:
江蘇阜寧澳洋熱電廠(chǎng)采用的是和利時(shí)的DCS控制系統(tǒng),因?yàn)槲覀兊目刂扑悸肥窃谠锌刂葡到y(tǒng)基礎(chǔ)上做的程序,所以硬件中不包含io模塊采用西門(mén)子ps407,400控制器以及cp441通訊模塊。網(wǎng)上采購(gòu)232通訊接頭,自制232通訊線(xiàn)。
硬件組態(tài):
硬件組態(tài)很簡(jiǎn)單,只要按照說(shuō)明資料一步步操作就可以了,這里沒(méi)有什么好說(shuō)的。
遇到的問(wèn)題:
1、接線(xiàn)。網(wǎng)上搜索到的232接線(xiàn)圖:
按照這個(gè)接線(xiàn)圖連接后無(wú)法通訊,后來(lái)我考慮到modbus的通訊需要告訴對(duì)方是否準(zhǔn)備還收發(fā)數(shù)據(jù)以及是否收發(fā)結(jié)束,所以應(yīng)該狀態(tài)也發(fā)給對(duì)方才行,所以把上面的接線(xiàn)圖改成:
實(shí)現(xiàn)了硬件連接,可以通訊了。
2、通訊格式設(shè)置:
大家都知道西門(mén)子的數(shù)據(jù)存儲(chǔ)格式和其他的公司有點(diǎn)不一樣,西門(mén)子是低字高位,其他公司大多數(shù)都是采用的高字高位,如果只是傳輸字節(jié)的話(huà),兩者是沒(méi)有區(qū)別的,如果用modbus傳輸32位的數(shù)據(jù)就需要注意這個(gè)問(wèn)題了,因?yàn)閙odbus只是原封不動(dòng)的把藥傳輸?shù)?2位地址的數(shù)據(jù)傳過(guò)去,具體這些位中式什么它不管的,所以如果沒(méi)有注意到這個(gè)高低位的問(wèn)題,很有可能你都不知道傳過(guò)去的是什么。對(duì)方能夠?qū)崿F(xiàn)換位功能,則只要采用4321的數(shù)據(jù)格式就行了,否則就要我們手動(dòng)把需要傳輸?shù)臄?shù)據(jù)在傳輸前或者接收后進(jìn)行換位操作。第一次使用沒(méi)有注意這個(gè)問(wèn)題,通訊后的數(shù)據(jù)全變了,后來(lái)?yè)Q位后正常了。
3、處理:
在實(shí)際測(cè)試使用過(guò)程中處理了前面說(shuō)的問(wèn)題后,又遇到了新的問(wèn)題。實(shí)數(shù),整數(shù)都能正確通訊,只有bool量無(wú)法通訊,只要增加bool量,則第三方系統(tǒng)報(bào)錯(cuò),通訊中斷,咨詢(xún)技術(shù)服務(wù)人員也沒(méi)有解決問(wèn)題,后來(lái)我想既然整數(shù)能夠正確處理,那么我就把bool量打包成字節(jié)按整數(shù)傳輸,這樣還省了需要傳輸?shù)淖兞繑?shù),只是雙方都需要編程,發(fā)送bool量方打包數(shù)據(jù)把8個(gè)bool量轉(zhuǎn)換成一個(gè)字節(jié)的整數(shù),接收方再把這個(gè)整數(shù)分解成8個(gè)bool量。
通過(guò)以上的處理,終于實(shí)現(xiàn)的西門(mén)子400控制器通過(guò)modbus與和利時(shí)dcs系統(tǒng)的通訊。
評(píng)論