咨詢電話
ENGLISH0755-88840386發(fā)布時(shí)間:2020-08-13 10:46:06 |來(lái)源:網(wǎng)絡(luò)轉(zhuǎn)載
o引言
智能控制儀表是工業(yè)控制中最常用的控制器之一,具有專業(yè)性強(qiáng)、智能化高、控制算法先進(jìn)、使用方便等特點(diǎn)。Modbus通信協(xié)議作為一種開(kāi)放高效的通信協(xié)議為眾多智能控制儀表廣泛應(yīng)用。如何將這些具備Modbus通信接口的智能設(shè)備簡(jiǎn)單有效地集成到工廠SCADAHMI(SupervisoryControlAndDataAcquisitionHumanMachineInterface)系統(tǒng)中已經(jīng)是各自動(dòng)化公司必須面對(duì)的問(wèn)題。
西門子S7-300系列PLC以其運(yùn)行可靠、集成度高、可擴(kuò)展性強(qiáng)等優(yōu)點(diǎn),在工控領(lǐng)域被廣泛應(yīng)用。其提供的CP341通信處理模塊可實(shí)現(xiàn)PLC與各種串口設(shè)備之間的智能通信。因此可以利用PLC的通信處理模塊讀取智能控制儀表中的數(shù)據(jù),然后通過(guò)PLC中的工業(yè)以太網(wǎng)模塊、現(xiàn)場(chǎng)總線模塊連接到企業(yè)SCADAHMI系統(tǒng)中達(dá)到完美的結(jié)合。該文在設(shè)計(jì)某自動(dòng)化生產(chǎn)線時(shí),通過(guò)基于CP341的ModbusASCII通信方式,將南京某科技有限公司生產(chǎn)的XK-2000動(dòng)態(tài)稱重顯示控制器的參數(shù)讀取到S7-300PLC中,參與實(shí)際的過(guò)程控制。
1通信系統(tǒng)構(gòu)成及儀表協(xié)議介紹
1.1通信網(wǎng)絡(luò)的結(jié)構(gòu)
在自動(dòng)化生產(chǎn)線中,要求將16臺(tái)XK-2000儀表的重量實(shí)際數(shù)值、設(shè)定數(shù)值等通過(guò)通信模塊讀取到PLC(系統(tǒng)選用6ES7315-2AH14-0AB0)中。XK-2000儀表提供Modbus通信接口,該儀表通信協(xié)議為標(biāo)準(zhǔn)的ModbusASCII碼協(xié)議。為了能夠?qū)x表的參數(shù)讀入到SiemensPLC中,采用了某公司的Modbus通信模塊CP341(6ES7341-1CH02-0AE0),通過(guò)集成在CP341通信模塊中ASCII碼通信協(xié)議讀取出XK-2000儀表中的數(shù)據(jù)。其網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1網(wǎng)絡(luò)結(jié)構(gòu)
XK-2000儀表與PLC之間構(gòu)成的網(wǎng)絡(luò)為RS485網(wǎng)絡(luò),雙方以19200bps的通信速率進(jìn)行通信,以下為CP341模塊和XK-2000儀表及通信協(xié)議的簡(jiǎn)單介紹。
CP341通信處理模塊是某公司提供的點(diǎn)到點(diǎn)連接的高速串行通信的低成本解決方案,是實(shí)現(xiàn)SiemensPLC和第三方智能控制儀表通信的模塊。它可以在SiemensS7-300和ET200M中使用,該通信模塊提供了RS232C(V.24)、20mA(TTY)和RS422/RS485(X.27)三種不同形式的傳輸接口。
該模塊可以實(shí)現(xiàn)ASCII碼,39W(R)和RK512,客戶協(xié)議(可裝載)等通信協(xié)議,通過(guò)集成在STEP7中的參數(shù)化工具可進(jìn)行簡(jiǎn)單的參數(shù)化設(shè)置,其設(shè)置主要包括通信方式(波特率、數(shù)據(jù)位數(shù)、停止位數(shù)和奇偶校驗(yàn))、接口方式(485或422)等,對(duì)于同XK-2000儀表通信,設(shè)計(jì)中可以設(shè)置為:①通信方式19200,7,n,l;②接口方式RS485,其余的設(shè)置為默認(rèn)方式。
XK-2000是南京某科技有限公司專門針對(duì)皮帶秤設(shè)計(jì)的一種高性能動(dòng)態(tài)稱重顯示控制儀表。液晶顯示,中文菜單,提供PID控制算法和RS485通信接口。為了能夠與CP341模塊通信,需要設(shè)置儀表中的參數(shù),見(jiàn)表1。
XK-2000儀表的通信協(xié)議是標(biāo)準(zhǔn)的ModbusASCn碼通信協(xié)議,報(bào)文數(shù)據(jù)幀見(jiàn)表2,功能碼見(jiàn)表3。
指令起始地址
指令起始地址
指令起始地址
數(shù)據(jù)長(zhǎng)度 數(shù)據(jù)起始到結(jié)束的長(zhǎng)度:由4個(gè)ASCH碼組合
數(shù)據(jù)長(zhǎng)度
數(shù)據(jù)長(zhǎng)度
數(shù)據(jù)長(zhǎng)度
LRC校驗(yàn)高位LRC檢査碼:由2個(gè)ASCII碼組合
LRC校驗(yàn)低位
END高位 結(jié)束字符:ENDHi=CR(0DH),END
LO=LF(OAH)
END低位
表3功能碼
功能碼 功能
03H 讀出緩存器內(nèi)容
06H 把具體二進(jìn)制值裝入一個(gè)保持寄存器
08H 回路測(cè)試
ioh 把具體二a制值裝入一串連續(xù)的保持寄存器
2軟件實(shí)現(xiàn)
2.1CP341同XK-2000儀表之間的通信
要通過(guò)CP341通信模塊實(shí)現(xiàn)同XK-2000儀表之間的通信,PLC程序的設(shè)計(jì)主要包括讀數(shù)據(jù)命令程序、寫數(shù)據(jù)命令程序、故障處理程序設(shè)計(jì)以及LRC校驗(yàn)程序等。主程序流程如圖2所示。
(啟動(dòng))
I
初始化
I啟動(dòng)輪詢|
圖2主程序流程圖
2.2CP341讀數(shù)據(jù)程序
考慮到系統(tǒng)有16塊儀表,采用輪詢的方式訪問(wèn)每塊儀表,而對(duì)于發(fā)送讀取數(shù)據(jù)的DB塊僅是儀表地址、功能碼和LRC校驗(yàn)碼不相同,因此,所有的儀表采用一個(gè)相同的DB塊來(lái)執(zhí)行,根據(jù)不同的儀表號(hào)修改相應(yīng)的儀表地址、功能碼和LRC校驗(yàn)碼。DB(DB901)塊的結(jié)構(gòu)如表4所示。
儀表地址的修改采用循環(huán)計(jì)數(shù)方式來(lái)實(shí)現(xiàn)。每次循環(huán)儀表號(hào)加1,直到16為止,然后回到地址1重復(fù)執(zhí)行。讀數(shù)據(jù)由寫操作和讀操作組成,程序如下:發(fā)送讀命令
2.5LRC校驗(yàn)
LRC域是一個(gè)包含8位二進(jìn)制值的字節(jié)。LRC值由傳輸設(shè)備來(lái)計(jì)算并放到消息幀中,接收設(shè)備在接收消息的過(guò)程中計(jì)算LRC,并與接收到消息幀中LRC域中的值比較,如果兩值不等,說(shuō)明有錯(cuò)誤。LRC校驗(yàn)比較簡(jiǎn)單,它在ASCII協(xié)議中使用,檢測(cè)了消息域中除開(kāi)始的冒號(hào)及結(jié)束的回車換行號(hào)外的內(nèi)容。' 它僅僅是把每一個(gè)需要傳輸?shù)臄?shù)據(jù)按字節(jié)疊加后取反加1即可。程序如下:
3結(jié)束語(yǔ)
通過(guò)使用點(diǎn)到點(diǎn)串行通信模塊CP341建立與XK-2000智能儀表之間的通信,不僅可以實(shí)時(shí)讀取儀表中的設(shè)定值、瞬時(shí)值等,同時(shí)可以遠(yuǎn)程設(shè)置儀表中的數(shù)值。
文章來(lái)源于網(wǎng)絡(luò)轉(zhuǎn)載,侵刪