crc问题,请教高手

modbus RTU中,需要crc进行校验,要求低字节在前,高字节在后。书上说,如数据帧为0101023803EA3D,crc码为3DEA。(不明白为什么,我算的是16#845A)已知是CRC-16校验,生成多项式即16#8005,逆序16#A001,发现01010238033DEA并不能整除16#8005,想问:S7-200中的CRC码格式究竟是如何定义的?比如,是否逆序,取反?

问题补充:
苦斗老师讲的我都明白,关键我想弄明白S7-200中定义的CRC格式,比如寄存器初始化为$FFFF,意义何在?200如何进行校验检查,等等。

最佳答案

没必要搞清它的数学推导过程!
 按下列顺序处理即可:
 是先调入一值是全“1”的16位寄存器,然后调用一过程将消息中连续的8位字节各当前寄存器中的值进行处理。仅每个字符中的8Bit数据对CRC有效,起始位和停止位以及奇偶校验位均无效!
 每个8位字符都单独和寄存器内容相异或,结果向最低有效位方向移动,最高有效位以0填充。LSB被提取出来检测,如果LSB为1,寄存器单独和预置的值(16#A001)异或一下,如果LSB为0,则不进行。整个过程要重复8次。在最后一位(第8位)完成后,下一个8位字节又单独和寄存器的当前值相异或。最终寄存器中的值,是消息中所有的字节都执行之后的CRC值。
 CRC添加到消息中时,低字节先加入,然后高字节。
 下面是我做的一个子程序仅供参考:
 LD     Always_On:SM0.0
 WDR
 MOVW   16#FFFF, LW6
 WDR
 FOR    LW8, +1, #count:LW4
 XORB   *#start_add:*LD0, #crc_Lo:LB7
 INCD   #start_add:LD0
 FOR    LW10, +1, +8
 SRW    LW6, 1
 LD     Overflow_Illegal:SM1.1
 XORW   16#A001, LW6
 NEXT
 NEXT
 电子邮件内信我 给你详细讲解!
 

提问者对于答案的评价:
其实Modbus协议中的CRC校验顺序是逆序的,高低字节互换位置。初始化为16#FFFF是为了使CRC寄存器能判断出以0为起始为的源数据。

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

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

相关推荐

  • 对200的扫描周期不了解请师傅们讲下谢谢了

    想问下师傅们,200plc这个梯形图,在第一个扫描周期,M0.0的线圈得电。Q0.0 Q0.1线圈得电。那么在以后的扫描周期,M0.0 Q0.0 Q0…

    2021年7月5日
  • s7-200模拟电位器的作用及使用

    请问s7-200模拟电位器的作用及使用? 最佳答案 一般也就是做实验的时候用用. 或者你在程序中需要得到一个给定的常量,可以通过模拟电位器得到. 编程是一个人创…

    SIMATIC S7-200 2021年7月5日
  • CPU 224XP AC/DC/继电器:1L、2L接入DC24V而3L接入AC220V电源是否可以?

    CPU 224XP AC/DC/继电器:1L、2L接入DC24V而3L接入AC220V电源是否可以? 最佳答案 可以,要保证一组输出接同样的电压。继电器输出是一…

    SIMATIC S7-200 2020年11月1日
  • S7-200与汇川MD330的Modbus 485通讯

    我看MD320的说明书,155页,1007运行速度、100F负载速度,这两个速度有什么区别?我的电机有编码器,那么编码器读回的速度是百分数还是转速(r/min)?谢谢! 最佳答案 …

    SIMATIC S7-200 2017年11月23日
  • PG/PC

    v4.0版本。在PG/PC设置应用程序访问节点里没有Micor/WIN–––>PC/PPI选项,我重新安装软件还是没有!驱动正常! 最佳答案 啥操作系统?参考:1、兼容性工具…

    2021年7月5日
  • K-TP 178的视图报警窗口的问题

    我的目的是在K-TP 178中的视图报警窗口中显示错误报警,在报警消息消失并确认报警消息后,在报警窗口中还能显示报警消息.这样怎么做会比较好.好像一经确认后报警消息就消失…

    SIMATIC S7-200 2021年7月5日
  • s7-200子程序显示

    有一个程序,在程序编辑窗口看到有很多子程序,而在左边的“指令树”下面的“调用子程序”却没有全部显示出来,这是什么原因 问题补充:没显示出来的应该是库文件,已经加密了,也导不出来 最…

    SIMATIC S7-200 2020年11月1日
  • s7一200

    触摸屏参数修改 最佳答案 修改参数就是写入的过程,实质上我们经常在HMI中组态的按钮功能就可以看做使用HMI修改了PLC参数 提问者对于答案的评价: 专家置评 已阅,最佳答案正确。

    SIMATIC S7-200 2017年11月1日
  • 自由口通讯的接线

    我想用S7-224和几个智能仪表通讯,我想用RS-485来做通讯,S7-224自由口协议是串口232,我觉得一种用485转232来做,另一种用DP总线头来做行不,如果行,总端电阻怎…

    SIMATIC S7-200 2020年11月1日
  • S7200与台达触摸屏通讯

    大家好!我现在做S7-200与台达通讯的一个项目。1、我需要一个台达触摸屏的软件,哪位高人对这个产品熟悉的给我发点资料和触摸屏软件。十分感谢!2、S7-200与台达触摸屏直接能通讯…

    SIMATIC S7-200 2020年11月5日

发表回复

登录后才能评论