回复:应用探讨——S7-300/400 PLC Modbus通讯应用探讨

苦斗

  • 帖子

    299
  • 精华

    3
  • 被关注

    10

论坛等级:侠士

注册时间:2007-08-30

普通 普通 如何晋级?

发布于 2011-07-31 12:49:46

20楼

我也一直用CP340实现Modbus RTU通讯方式实现读写操作!CP341没有用过!
Modbus RTU通讯就是普通的串行通讯而已(一发送、一接收如此循环),只是按照他们自己通讯规约!
如: 地址、功能码、数据域、CRC校验码等(发送和返回的读写长度可能不同,根据情况而定)
目前的变频器、智能仪表等都支持Modbus RTU! 也是最常见的从站!
具体协议请查询Modbus通讯协议!
根据我做过的和三垦、ABB变频器、托利多称重仪表等通讯来说明一些常见的功能码如03读、06写、10(H)

批次写功能!
配置:cpu312+CP340、ABB_510变频器 实现读电流、频率、写频率.
大致思路:PLC里做过从站轮询,功能(读电流、读频率、写频率)轮询!
CP340参数配置:
硬件组态里面:地址默认即可(比如320);
基本参数栏:中断生成:否,参数---Protocol选:ASCII,双击Protocol----Speed选择9600(最高只能9600,这点

不同于200PLC) 数据位8位,停止位1位,无奇偶校验
在Interface栏下 选择Half Duplex (RS 485) TWO-Wire Mo
其它都默认即可!
下面开始就03读频率(104,根据寄存器地址起始对应67H)命令
如轮询地址1,功能地址是1
发送命令:
地址 功能码 数据域读起始高位 数据域读起始低位 被读数据个数高位 被度数据个数低位 CRC_l CRC_H
01H 03H 00 67H 00 01 ... ...
返回格式
地址 功能码 数据域个数高位 数据域个数低位 数据域高位 数据域低位 CRC_L CRC_H
01 03 00 01 ### ### ... ...

06H和10H类似

可以用串口通讯软件测试下 发送一命令 看看返回数据是否正确

所以问题关键是弄清楚协议、轮询程序、以及CRC校验等
关于CRC校验,建议不要开数学公式 网上有关于计算的步骤:
具体如下:
1- 预置16位寄存器为十六进制FFFF(即全为1)。称此寄存器为CRC寄存器;
2- 把第一个8位数据与16位CRC寄存器的低位相异或,把结果放于CRC寄存器;
3- 把寄存器的内容右移一位(朝低位),用0填补最高位,检查最低位;
4- 如果最低位为0:重复第3步(再次移位); 如果最低位为1:CRC寄存器与多项式A001(1010 0000

0000 0001)进行异或;
5- 重复步骤3和4,直到右移8次,这样整个8位数据全部进行了处理;
6- 重复步骤2到步骤5,进行下一个8位数据的处理;
最后得到的CRC寄存器即为CRC码。

最好做过个子程序 在发送命令和接收命令中调用即可
下面是我的校验子部分程序 仅供参考
L W#16#FFFF
T #TEMP2
L #Start_add
SLD 3
LAR1
L #DBNO
T #TEMP4
OPN DB [#TEMP4]
NOP 0
L #Count
x001: T #TEMP3
L B#16#0
T #TEMP5
NOP 0
L DBB [AR1,P#0.0]
T LB 9
L #TEMP5
L #TEMP2
XOW
T #TEMP2
+AR1 P#1.0
L 0
T #TEMP6
NOP 0

L 8
x002: T #TEMP6

L #TEMP2
SRW 1
T #TEMP2
JP x003
JU x004
x003: NOP 0
A(
L W#16#A001
L #TEMP2
XOW
T #TEMP2
)

x004: NOP 0
L #TEMP6
LOOP x002
NOP 0
L #TEMP3
LOOP x001
NOP 0
L LB 2
T #CRC_H
L LB 3
T #CRC_L
另外我发现同样是Mobus通讯 200通讯间隔最短可以调到50ms发送 接收一次,同样的配置用CP340最短
要80MS才来得及接收!
是什么原因呢?
难道200利用的是中断 340用的是程序 所以速度没中断快??
管理员注:本帖已被纳入此次探讨发帖整理,请点此详阅
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。