水电电工知识
电工知识|MODBUS通信总结
2017-05-26  浏览:94
水电之家讯:西门子S7-200plc在与英威腾变频器Modbus通讯时,采用自己编制主站通讯程序,参照西门子USS程序格式做成库程序,在多个项目上应用,效果还是不错。

西门子S7-200自由口通讯确实很自由,可以编制任何通讯。

西门子自带的Modbus主站程序,用在变频器控制上,不方便。要求是能向USS库程序一样有多个控制的位信号输入,在速度设定值变化是发送速度值,平时要读变频器的运行状态(包括故障状态),还想读变频器运行时的电流。于是,自己根据英威腾变频器的通讯协议,编制了Modbus主站通讯程序。

Modbus通讯协议要求:

读写都是8个字节,只是功能码的不同和读是读得长度,写是写的数据值

发送

VB1600

VB1601

VB1602

VB1603

VB1604

VB1605

VB1606

VB1607

VB1608

8个字节

发送长度8

从站地址

功能码

数据地址高字节

数据地址低字节

数据字长高字节

数据字长低字节

CRC校验低字节

CRC校验高字节

从上面的通讯结构可以看出:数据地址、字长和CRC都是一个字,其中地址和长度或数据高低字节与西门子定义一致,即低地址高字节。CRC不一样,是低地址低字节,与计算机上的定义一致。这点必需注意。

变频器写返回:

接受

VB1609

VB1610

VB1611

VB1612

VB1613

VB1614

VB1615

VB1616

VB1617

8个字节

接受长度8

从站地址

功能码

数据地址高字节

数据地址低字节

数据值 高字节

数据值 低字节

CRC校验低字节

CRC校验高字节

返回与发送时一样,表示通讯数据接受成功,并已执行。

我只需读5个字的参数或1个字的状态,变频器读返回:

接受

VB1609

VB1610

VB1611

VB1612

VW1613

……

VW1621

VB1623

VB1624

N个字节

接受长度n

从站地址

功能码

数据字节字节数

数据1 数值

。。。。。

数据5 数值

CRC校验低字节

CRC校验高字节

读状态返回7个字节,读5个字返回15个字节。

程序要求:定义通讯优先级别是先写,后读。写命令(运行,停止,复位等)发送级别最高,其次是写频率设定。写通讯发送后,判断返回值,确定是否写成功,若写成功则不再写,只要控制状态或频率改变时,再次写。读为一次读变频器状态,一次读当前运行参数,轮流读取。

根据上述要求,确定了以下几个子程序和中断程序:

1. 初始化子程序:对自由口通讯配置波特率、偶校验等

2. 变频器控制子程序:输入运行、停止、复位、地址、频率设定等入口。输出变频器状态、通讯故障码、当前运行频率、电流等。程序中要根据上次通讯结果判断当前应写还是读。并发出XMT通讯指令,开通发送完成中断。

3. CRC校验子程序:运算发送的CRC码。

4. 发送完成中断程序:根据发送的内容,确定接受的长度,关闭接受中断,开通接受完成中断。

5. 接受完成中断程序:判断接受信号是否正常,若不正常送出相应的故障码。将接收到的正确信号,送入对应暂存区内,供控制子程序输出,关闭接受中断。水电之家为您提供最全面的管材,管件,水电,电线,电工,管材水电品牌的装修知识点和各种管材水电的导购与在线购买服务,拥有最便宜的管材水电价格和最优质的售后服务,每天都有秒杀的抢购活动哦!敬请登陆水电之家:http://shuidian.jc68.com/
更多»您可能感兴趣的文章:
更多»有关 电线 的产品:
  • 水电电工资讯
  • 发表评论 | 0评
  • 评论登陆
  • 移动社区 天花之家 木门之家 灯具之家 铁艺之家 幕墙之家 五金头条 楼梯头条 墙纸头条 壁纸头条 玻璃头条 老姚之家 灯饰之家 电气之家 全景头条 照明之家 防水之家 防盗之家 区快洞察 建材 枣庄建材 临沂建材 南昌建材 上饶建材 抚州建材 宜春建材 吉安建材 赣州建材 鹰潭建材 新余建材 九江建材 萍乡建材 景德镇陶瓷 石家庄建材 衡水建材 廊坊建材 沧州建材 承德建材 建材之家 企业之家 720全景
    (c)2015-2017 BYBC.CN SYSTEM All Rights Reserved