Modbus CRC的生成

Modbus通信时, MSG的CRC是计算机生成并校验还是要自己弄生成程序来生成并添加的? 校验程序也要 自己写?

最佳答案

调用库文件modbus rtu,选择校验后,这些CRC是建立在库指令里面的,不需要你单独再编写。
如果是自己编辑的通讯程序,那需要自己编写CRC程序:
实际上编写这个程序也简单的,我之前有过总结:按下面6个步骤写。
CRC校验程序的编法:
1)设置CRC存储器为16#FFFF,存储区:AC0
2)把第一个参与校验的低8位与CRC的低8位进行异或运算,结果存放在CRC
3)把CRC右移一位,最高位补0,检查最低位b0值
4)若b0=0,CRC不变,CRC与16#A001进行异或运算,结果存放在CRC
5)重复3、4两步,直到右移8次,这样第一个8位数均进行处理了,结果存放在CRC
6)重复2、5步,处理第二个8位数
我在论坛也有这个源程序发的帖子,测试过的。

提问者对于答案的评价:

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 上午11:29
下一篇 2021年7月5日 上午11:29

相关推荐

  • STEP7 5.5和5.6安装EM277的GSD文件问题

    S7-300与S7-200的DP通讯项目,在STEP7 5.5和5.6中安装EM277的GSD文件报错,5.5装在XP系统,5.6装在WIN10系统,急用求救,谢谢! 图…

    2021年7月5日
  • 定时控制功能

    在S7-200中如何实现定时控制功能,例如我的设备需要每天上午6点开机,10点30分关机,下午1点开机,4点40分关机,每月29至此31日此功能不用。 我把系统时间读出后…

    SIMATIC S7-200 2021年7月5日
  • 发送和接收指令?

    仪表上有数据是这样写的:向仪器发送ASCⅡ码“F”或“f”,校验仪即回送一组ASCⅡ码包含校验仪当前的测量数据和工作状态信息,发送字符“C”时,仪器连续送数,发送字符“E”时,仪器…

    SIMATIC S7-200 2021年7月5日
  • 贴图:这个EM231 RTD的SF灯常亮。连续坏,找不到原因在哪了。

    这个模块连续坏了4个了,都是这个SF灯常亮,由于是德国原装进口,所以德国对于这个模块也没有检测报告和结果。他们一般直接发新的过来,具体什么原因坏的,也没有一个说法,那我现将这个现场…

    2020年10月31日
  • s7-200与仪表用modbus通讯

    我想用200自带的modbus库去连接仪表,但是对方给的通讯协议太笼统,看不懂,本人第一次用modbus,我把他给我的协议截图了(就只有图上这些内容),希望大侠们帮帮忙,看看我要的…

    2020年10月31日
  • S7-200PID向导了 给定,反馈的设置问题,急

    现在我要通过PID向导建一个PID,我的反馈输入是4—20MA的信号量程是0-1Mpa的一个压力表,然后我再PID向导里反馈项选了单极性20%(6400-32000)输入的时候就直…

    SIMATIC S7-200 2021年7月5日
  • 200的PLC与PLC通讯程序

    PLC与PLC 通讯的程序怎样编写,如何建立指针,比如,用PLC1去读PLC2的某一个点,希望各位老师能讲的详细点,最好能给一个事例。在这里先谢谢了 问题补充:还是不明白…

    SIMATIC S7-200 2021年7月5日
  • S7200数值累加并保存

    如何在S7200 226CN中把现场采集的数值做总累计(比如总流量是多少)并在PLC断电时能保持,以便于重新得电时不影响在上位机上的显示?(就像在S7300中OB35中累…

    SIMATIC S7-200 2020年11月1日
  • 正跳变与上升沿微分的区别

    请问正跳变指令与欧姆龙CPM1A机型的上升沿微分指令是否一样,在欧姆龙中如何实现正跳变置位,最好能举例说明。 最佳答案 两者意思一样,都包含上升沿跳变和下降沿跳变,都是在瞬间为ON…

    SIMATIC S7-200 2021年7月5日
  • 想通过一个压力信号分别控制两个方向(正反}的运动而且可自动反复运动

    压力继电器在两个方向是一个信号{上升压力和下降压力在终点一样) 最佳答案 {上升压力和下降压力在终点一样)完全可以实现。 提问者对于答案的评价:其实用一条ALT指令就可以实现

    SIMATIC S7-200 2020年10月31日

发表回复

登录后才能评论