s7-300 modbus RTU CRC校验程序如何编写

CP340  ASCII 通讯   MODBUS RTU  CRC校验程序

最佳答案

参考:http://wenku.baidu.com/view/d087590d7cd184254b353596.htm
VAR_INPUT
   DB_NO : INT ; 
   DBB_Start : INT ; 
   DBB_Counts : INT ; 
 END_VAR
 VAR_OUTPUT
   CRC_H : BYTE ; 
   CRC_L : BYTE ; 
 END_VAR
 VAR_TEMP
   CRC_REG : WORD ; 
   DB_NO_TEMP : INT ; 
   BytesChecked : INT ; 
   BitsChecked : INT ; 
 END_VAR
 BEGIN
 NETWORK
 TITLE =
 
       L     W#16#FFFF; 
       T     #CRC_REG; //预置CRC寄存器
       L     #DB_NO; 
       T     #DB_NO_TEMP; 
       OPN   DB [#DB_NO_TEMP]; 
       L     #DBB_Start; //读入校验起始字节
       SLD   3; 
       LAR1  ; 
 
       L     #DBB_Counts; //读入校验字节数量
 _A:   T     #BytesChecked; //字节处理循环
       L     DBB [AR1,P#0.0]; 
       L     LB     1; 
       XOW   ; 
       T     LB     1; 
 
       L     8; 
 _B:   T     #BitsChecked; //位处理循环
       L     #CRC_REG; 
       SRW   1; 
       T     #CRC_REG; 
       JZ    _C; //检验移出位是否为1
       L     #CRC_REG; 
       L     W#16#A001; 
       XOW   ; 
       T     #CRC_REG; 
 
 _C:   L     #BitsChecked; //校验下个位
       LOOP  _B; 
 
       +AR1  P#1.0; //校验下个字节
       L     #BytesChecked; 
       LOOP  _A; 
 
       L     LB     1; //输出校验码
       T     #CRC_H; 
       L     LB     0; 
       T     #CRC_L; 
 END_FUNCTION

提问者对于答案的评价:
已测试,效果好。谢谢!

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc263022.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日
下一篇 2019年6月11日

相关推荐

  • s7-300

    s7-300 PLC 采用MODBUS协议进行通讯,如何实现? 问题补充:请各位老师提供一些具体实例和有关资料,谢谢! 最佳答案 参考问题:http://www…

    自动化系统综合 2020年10月31日
  • 博涂13 和S71200通讯

    博涂软件能找到PLC 图1网线插上PLC,PLC错误指示灯就亮,诊断结果为伙伴错误 图2只能诊断,点击其他选项,显示图片3 图片说明:   …

    2017年6月3日
  • 关于CP441的串口通讯的问题

    请问各位,我在阅读CP441的说明书时发现有一问题看不懂,即为什么在为CP441编写发送数据功能块SFB12 BSEND时要定义一个背景数据块和发送数据块,后者好理解即数…

    2017年6月13日
  • 关于西门子PLC的输入输出类型

    各位学长,能否较为详细的总结一下西门子PLC的输入和输出的类型。以及各种类型之下需要注意的接线事项。还有,从场效应管输出到晶体管输出是否要有转换电路? 目前日本和德国的技…

    自动化系统综合 2020年11月1日
  • 西门子订货号所代表的意义

    现在有一个问题需各位大佬进行指点: 1、西门子PLC系列的订货号每个数字及英文字所在位置代表的意思是什么? 2、如何区分同系列中的模板是否通用?比如:6ES7&…

    自动化系统综合 2020年11月1日
  • S7200和S7300编梯形图时的区别

    我的S7200梯形图中用到了“—>l”也就是“箭头前面加了一个竖”的符号,而且好多个这种句子并排写在一段里,但是在300里找不到,改用什么代替。 最佳答案 “—>l”表…

    自动化系统综合 2020年11月1日
  • 博图中的变量如何导入到WINCC中

    如何将博图的的变量表和数据块中的变量导入到WINCC,求教各位大神 最佳答案 1、选用的组件,可以在集成STEP7项目的WINCC项目中导入PLC变量设置C,M,R属性的变量2、使…

    自动化系统综合 2017年6月7日
  • 大神们,这是什么上位软件啊?

    公司有个项目,说是要用这个上位HMI软件,看题目像是EcoScreen这个,这好像是叫杜尔公司一款软件,但是都搜不着资料???有了解的分享一下啊。 图片说明:  &nbs…

    2017年6月9日
  • 怎么样用PC临时代替触摸屏

    西门子OP270触摸屏坏了,想用电脑临时代替一下,以便不影响生产,请教应该怎么设置 问题补充:我有原程序和PROTOOL RT ,能不能说的再详细点啊 最佳答案…

    自动化系统综合 2020年11月1日
  • pc控制plc300

    各位好!我想在电脑上控制plc的动作,以及显示一些数据,比如控制电机启停和显示控制量(温度),现在的麻烦是不知道怎么选择通讯方式,问了供货商,现在的理解基本是采用通讯模块但是需要昂…

    自动化系统综合 2020年10月31日