梯形图生成CRC校验码(有图片) 点击:1494 | 回复:8



H海天

    
  • 精华:3帖
  • 求助:0帖
  • 帖子:21帖 | 61回
  • 年度积分:0
  • 历史总积分:209
  • 注册:2007年6月30日
发表于:2007-07-10 16:48:00
楼主
程序简介:
1.M1闭合调用CRC生成程序SR0
2.M0为程序常开点.
3.MW100是要计算的字节数 M103为程序外层循环统计数(大于MW100时结束
  外层循环)
4.MW104控制内层循环8次
5.MW101CRC校验生成字
6.MW110CRC低字节
7.MW111CRC高字节
[color=#FF0000]请指导一下那里错了   CRC生成有误[/color]
图一

图二

图三



皓月

  • 精华:9帖
  • 求助:0帖
  • 帖子:483帖 | 5271回
  • 年度积分:0
  • 历史总积分:8863
  • 注册:2003年11月09日
发表于:2007-07-11 01:59:00
1楼
好像是施耐德的plc

电工A

  • 精华:7帖
  • 求助:0帖
  • 帖子:80帖 | 985回
  • 年度积分:0
  • 历史总积分:1414
  • 注册:2001年12月17日
发表于:2007-07-11 07:23:00
2楼
台达有CRC指令了,CRC比较麻烦,LRC用LD好实现

H海天

  • 精华:3帖
  • 求助:0帖
  • 帖子:21帖 | 61回
  • 年度积分:0
  • 历史总积分:209
  • 注册:2007年6月30日
发表于:2007-07-11 08:10:00
3楼
是施耐德的plc!
我想知道用梯形图计算CRC的方法.
有的朋友发个例子给我.
谢谢
邮箱  whlhgk@126.com
期待中........

H海天

  • 精华:3帖
  • 求助:0帖
  • 帖子:21帖 | 61回
  • 年度积分:0
  • 历史总积分:209
  • 注册:2007年6月30日
发表于:2007-07-11 16:32:00
4楼
期待中...............

皓月

  • 精华:9帖
  • 求助:0帖
  • 帖子:483帖 | 5271回
  • 年度积分:0
  • 历史总积分:8863
  • 注册:2003年11月09日
发表于:2007-07-11 17:01:00
5楼
施耐德的有专用指令

死亡骑士

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 1774回
  • 年度积分:0
  • 历史总积分:2630
  • 注册:2006年7月17日
发表于:2007-07-11 17:32:00
6楼
没用过施耐德

H海天

  • 精华:3帖
  • 求助:0帖
  • 帖子:21帖 | 61回
  • 年度积分:0
  • 历史总积分:209
  • 注册:2007年6月30日
发表于:2007-07-16 10:41:00
7楼
已经完成 发图与大家参考 图一
图二
图三
图四

H海天

  • 精华:3帖
  • 求助:0帖
  • 帖子:21帖 | 61回
  • 年度积分:0
  • 历史总积分:209
  • 注册:2007年6月30日
发表于:2007-07-16 10:54:00
8楼
还有个问题
MODBUS-CRC生成
 预置16位寄存器为十六进制FFFF(即全为1)。称此寄存器为CRC寄存器;
  · 把第一个8位数据与16位CRC寄存器的[color=#FF0000]低位[/color]相异或,把结果放于CRC寄存器;
  · 把寄存器的内容右移一位(朝低位),用0填补最高位,检查最低位;
  · 如果最低位为0:重复第3步(再次移位); 如果最低位为1:CRC寄存器与多项式A001(1010 0000 0000 0001)进行异或; 
  · 重复步骤3和4,直到右移8次,这样整个8位数据全部进行了处理;
  · 重复步骤2到步骤5,进行下一个8位数据的处理; 
  · 最后得到的CRC寄存器即为CRC码。
[color=#0000FF]1.但是MODBUS 要求高位,而我用的是低位.[/color]
[color=#0000FF][color=#808000][color=#008000][color=#800080][color=#FF0000]2.CRC发送时MODBUS要求先发高位,而我通讯时是先发的底位 [/color][/color][/color][/color][/color]
这两方面明白的朋友请指导一下!

热门招聘
相关主题

官方公众号

智造工程师