国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于CP341模塊的MODBUS RTU免授權(quán)通訊的實(shí)現(xiàn)與應(yīng)用

2017-03-03 07:09張翠平宋文超李根付瑤李古清
電氣傳動(dòng) 2017年2期
關(guān)鍵詞:校驗(yàn)碼發(fā)送數(shù)據(jù)功能塊

張翠平,宋文超,李根,付瑤,李古清

(天津電氣科學(xué)研究院有限公司,天津 300180)

基于CP341模塊的MODBUS RTU免授權(quán)通訊的實(shí)現(xiàn)與應(yīng)用

張翠平,宋文超,李根,付瑤,李古清

(天津電氣科學(xué)研究院有限公司,天津 300180)

根據(jù)實(shí)際項(xiàng)目介紹了一種基于RS485接口的西門子CP341通訊模塊的MODBUS RΤU通訊設(shè)計(jì)方案,在這種方案中詳細(xì)討論了通過使用集成在CP341內(nèi)的ASCⅡDriver通訊協(xié)議來實(shí)現(xiàn)MODBUS RΤU協(xié)議,并且通過采用在西門子SΤEP7中軟件編程的方式實(shí)現(xiàn)MODBUS RΤU免授權(quán)通信。該方案不再需要使用MODBUS協(xié)議驅(qū)動(dòng)模塊,節(jié)省開銷。實(shí)際應(yīng)用結(jié)果表明,這種通訊方式不僅成本低廉而且安全可靠、使用方便,具有廣泛的應(yīng)用價(jià)值,值得推廣。

CP341通訊模塊;MODBUS RΤU通信;CRC冗余校驗(yàn)

MODBUS RΤU作為一種開放高效的通信協(xié)議在眾多工業(yè)領(lǐng)域中的智能控制器以及智能儀表上已經(jīng)得到了廣泛的應(yīng)用,它成功地解決了現(xiàn)場(chǎng)智能控制器以及工業(yè)儀表與PLC之間數(shù)據(jù)交換問題,這樣不僅節(jié)省了傳統(tǒng)的大量通訊電纜,而且其數(shù)據(jù)傳輸可靠性也得到了大幅度提升。CP341模塊是西門子S7-300系列中的一種串行通信模塊,它硬件集成了ASCⅡDriver等驅(qū)動(dòng)協(xié)議,支持不同的傳輸接口如RS232C或RS485等。

本文通過空壓機(jī)變頻節(jié)能改造項(xiàng)目中PLC與美國(guó)壽力ΤS32S-600H型和LS25S-300L型螺桿空壓機(jī)的通訊,對(duì)MODBUS RΤU協(xié)議免授權(quán)通訊進(jìn)行了深入的研究并最終得以實(shí)現(xiàn)和應(yīng)用。

1 CRC及編程

1.1 CRC校驗(yàn)算法概述

在程序的設(shè)計(jì)調(diào)試時(shí)需要對(duì)從站的協(xié)議類型,奇偶校驗(yàn),傳輸超時(shí),從站地址等參數(shù)進(jìn)行一些必要的設(shè)置以使其能夠與主站相匹配,否則很難進(jìn)行彼此間的數(shù)據(jù)交換。其中CRC循環(huán)冗余校驗(yàn)為本文研究的關(guān)鍵性問題。

MODBUS通信協(xié)議的CRC碼為2B,包含了1個(gè)16位的二進(jìn)制值。發(fā)送設(shè)備需要計(jì)算CRC碼,并將其置于發(fā)送信息幀的末端。而接收設(shè)備則將接收到的所有信息(包含CRC碼)進(jìn)行重新計(jì)算,并判斷計(jì)算結(jié)果的CRC碼是否為0,如果計(jì)算結(jié)果為0,表明接收設(shè)備接收的信息幀正確無誤;否則表明接收的信息幀有誤。只有當(dāng)計(jì)算的CRC校驗(yàn)結(jié)果正確時(shí),RΤU主站才能接收從站的數(shù)據(jù),RΤU從站才能準(zhǔn)確無誤地響應(yīng)主站的請(qǐng)求。因此,如何準(zhǔn)確地進(jìn)行CRC校驗(yàn)是MODBUS通信成功與否的關(guān)鍵。

在計(jì)算CRC校驗(yàn)碼時(shí)只有每個(gè)字符的8位數(shù)據(jù)用于CRC處理。而其中的起始位、停止位以及校驗(yàn)位不參與CRC校驗(yàn)碼的計(jì)算。生成CRC校驗(yàn)碼的算法如下:

1)把16位CRC寄存器置成FFFF H。

2)將報(bào)文的起始位字節(jié)與這16位寄存器的低位字節(jié)與進(jìn)行“異或”運(yùn)算,并將運(yùn)算結(jié)果放入到這16位寄存器當(dāng)中。

3)運(yùn)算1次后CRC寄存器則向右移1位,MSB填零,檢查L(zhǎng)SB。

4)如果向右移出的數(shù)位是0,則重復(fù)步驟3);若向右移出的數(shù)位是1,CRC寄存器與101000000000000進(jìn)行異或運(yùn)算,并將其運(yùn)算結(jié)果存至這個(gè)寄存器當(dāng)中。

5)重復(fù)步驟3)和步驟4)直至完成8次移位,這樣就完成了8位字節(jié)的處理。

6)重復(fù)步驟3)至步驟5),直至全部字節(jié)處理完畢。這個(gè)16位寄存器的內(nèi)容即是CRC校驗(yàn)值。

7)放入CRC值信息時(shí),高8位和低8位應(yīng)分開放置,先放低8位,后放高8位。

1.2 CRC校驗(yàn)程序的編寫

CRC校驗(yàn)程序需要在主程序中被多次調(diào)用,因此為了方便調(diào)用,設(shè)計(jì)了1個(gè)功能塊FC100來完成此CRC校驗(yàn)。使用時(shí)只要在主程序中直接調(diào)用此功能塊就可以完成CRC校驗(yàn),這樣既方便修改而且用起來也更為方便、靈活。采用SΤL語(yǔ)言編寫部分程序代碼,如下所示:

2 系統(tǒng)通訊實(shí)現(xiàn)

2.1 CP341硬件配置與參數(shù)設(shè)置

在調(diào)試CP341的過程中首先需要SΤEP7軟件以及CP341模塊自帶的軟件驅(qū)動(dòng)程序。如果CP341模塊的驅(qū)動(dòng)程序未安裝,則不能對(duì)其模塊內(nèi)的參數(shù)進(jìn)行設(shè)置,這點(diǎn)是需要特別注意的。

本文選用了帶有RS485接口的CP341通訊模塊,使用集成在CP341內(nèi)的ASCⅡDriver通訊協(xié)議來實(shí)現(xiàn)Modbus Master/Slave RΤU通訊。在編寫程序之前需要對(duì)CP341模塊參數(shù)進(jìn)行必要的設(shè)置,其中包括:字符延遲時(shí)間設(shè)置4 ms來作為接收幀的結(jié)束方式;RS485接口方式;波特率設(shè)置為9 600 kb/s,8位數(shù)據(jù)位,1位截止位,1位奇偶校驗(yàn)位;其余為默認(rèn)選項(xiàng)。

在SΤEP7中硬件配置及CP341模塊設(shè)置如圖1所示。

圖1 CP341模塊在STEP7中的硬件配置及設(shè)置Fig.1 Hardware configuration and settings of CP341 module in STEP7

對(duì)CP341模塊硬件接口通信參數(shù)設(shè)置完成后,即可對(duì)程序進(jìn)行編寫。采用基于標(biāo)準(zhǔn)RS485接口的Modbus RΤU通訊方式,發(fā)送的數(shù)據(jù)包中應(yīng)該包含站號(hào)/數(shù)據(jù)區(qū)/讀寫指令等相關(guān)信息。

2.2 程序的設(shè)計(jì)與實(shí)現(xiàn)

在SΤEP7中的功能塊FC21中編寫PLC與智能控制器進(jìn)行數(shù)據(jù)傳輸?shù)某绦?,組織好查詢數(shù)據(jù)如站號(hào)、起始地址、功能碼、CRC校驗(yàn)碼等,并存放在數(shù)據(jù)塊DB21中,以此作為PLC主站查詢的發(fā)送數(shù)據(jù)源。利用程序中系統(tǒng)功能塊FB7“P-RCV-RK”接收數(shù)據(jù)以及FB8“P-SND-RK”發(fā)送數(shù)據(jù),結(jié)合CRC的數(shù)據(jù)校驗(yàn),即可實(shí)現(xiàn)CP341與壽力空壓機(jī)智能控制器之間的MODBUS RΤU的數(shù)據(jù)通信。

調(diào)用功能塊FB8“P-SND-RK”發(fā)送數(shù)據(jù)。FB8是通過上升沿觸發(fā)工作的,來1個(gè)上升沿FB8則被觸發(fā)1次進(jìn)而發(fā)送1個(gè)請(qǐng)求數(shù)據(jù)包,因此要設(shè)計(jì)觸發(fā)程序。發(fā)送數(shù)據(jù)主要程序段如下:

調(diào)用功能塊FB7“P-RCV-RK”來接收數(shù)據(jù),并將接收到的數(shù)據(jù)存放在數(shù)據(jù)塊DB22中,利用由PLC主站發(fā)送過來的CRC校驗(yàn)值進(jìn)行計(jì)算。如果計(jì)算結(jié)果為0,則表示接收無誤。否則接收出現(xiàn)問題。主要程序段如下:

Implementation and Application of MODBUS RTU Unlicensed Communication Based on CP341 Module

ZHANG Cuiping,SONG Wenchao,LI Gen,F(xiàn)U Yao,LI Guqing
(Tianjin Electric Research Institute Co.,Ltd.,Tianjin 300180,China)

A communications design based on Siemens CP341 module MODBUS RTU was described,The proposal was discussed which used ASCⅡ driver communication protocols integrated within the CP341 to enable MODBUS RTU protocol,and MODBUS RTU unlicensed communications were achieved by using Siemens STEP7 software programming way in detail.The program did not require the use of MODBUS protocol driver module,overhead was saved,application of the project results show that this communication is reliable,cheap cost and easy to use,and has wide application value.

CP341 communication module;MODBUS RTU communication;CRC redundancy check

TP29

A

10.19457/j.1001-2095.20170212

張翠平(1983-),女,本科,工程師,Email:zcp313@163.com

猜你喜歡
校驗(yàn)碼發(fā)送數(shù)據(jù)功能塊
一種車載自組織網(wǎng)絡(luò)的媒體接入控制協(xié)議
基于馬爾科夫鏈的LoRaWAN網(wǎng)絡(luò)節(jié)點(diǎn)性能分析
帶標(biāo)記方式的CRDSA++協(xié)議性能分析*
Ovation系統(tǒng)FIRSTOUT和FIFO跳閘首出比較
使用IPSec安全傳輸數(shù)據(jù)
基于Excel實(shí)現(xiàn)書號(hào)校驗(yàn)碼的驗(yàn)證
基于FPGA的循環(huán)冗余校驗(yàn)碼設(shè)計(jì)
身份證號(hào)碼中的數(shù)學(xué)
自定義功能塊類型在電解槽聯(lián)鎖中的應(yīng)用
基于MACSV6.5.2的鍋爐燃盡風(fēng)開關(guān)量調(diào)節(jié)門控制功能塊設(shè)計(jì)
磐石市| 罗江县| 道真| 洱源县| 营山县| 滨州市| 桦甸市| 连平县| 塘沽区| 花垣县| 连山| 阜平县| 扶余县| 乐陵市| 南雄市| 老河口市| 吐鲁番市| 大庆市| 西青区| 宁安市| 江源县| 湟源县| 祁阳县| 滁州市| 鹿泉市| 建水县| 绍兴县| 保山市| 平邑县| 黔南| 奉新县| 手机| 新野县| 广灵县| 仪陇县| 肇州县| 确山县| 丰台区| 玛沁县| 资源县| 宜章县|