BCC码是怎么算啊?!(PLC 通信) 点击:4990 | 回复:9



可@可

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 11回
  • 年度积分:0
  • 历史总积分:20
  • 注册:2001年12月12日
发表于:2003-02-26 20:51:00
楼主
谁知道——BCC码是怎么算啊?!教我一下,谢谢!



ahe

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 45回
  • 年度积分:0
  • 历史总积分:296
  • 注册:2002年11月08日
发表于:2003-02-19 13:54:00
1楼
丫%丫 你好,我不知道你是用的什么牌子的PLC,我现提供给你以西门子的BBC算法,算上我的帮助吧。 自由口模式下PLC与计算机的通信 概述 ----本例说明如何以自由协议实现计算机与S7-200的通信,计算机作为主站,可以实现对PLC从站各寄存器的读/写操作。 ----计算机通过COM口发送指令到PLC的PORT0(或PORT1)口,PLC通过RCV接收指令,然后对指令进行译码,译码后调用相应的读/写子程序实现指令要求的操作,并返回指令执行的状态信息。 通信协议 ----在自由口模式下,通信协议是由用户定义的。用户可以用梯形图程序调用接收中断、发送中断、发送指令(XMT)、接受指令(RCV)来控制通信操作。在自由口模式下,通信协议完全由梯形图程序控制。 具体的可以发信到我信箱里是取。好吗。

ahe

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 45回
  • 年度积分:0
  • 历史总积分:296
  • 注册:2002年11月08日
发表于:2003-02-19 13:55:00
2楼
我的信箱是hlbdlj@sina.com

可@可

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 11回
  • 年度积分:0
  • 历史总积分:20
  • 注册:2001年12月12日
发表于:2003-02-19 16:05:00
3楼
我用的是松下FPO系列的 PLC 我用 VB 写了个程序 目的是读出 DT 的内容比如“%01RDD011050110757\r” 其中的 57 是BCC 码,它是怎么得出来的?我真需要你的帮助!先谢谢了!~~

广州科达

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 159回
  • 年度积分:0
  • 历史总积分:297
  • 注册:2002年12月21日
发表于:2003-02-24 15:43:00
4楼
松下FP系列的PLC自家协议是“MEWTOCOL-(COM/DATA)”,所用的BCC是“循环冗余校验码”(取8位CRC)。其实它就是“异或XOR”运算(相同为0相反为1),所以即使不明原理也可“照版煮糊”地使用。例如: % 01 # RD D 01105 01107 的CRC为十进制的57推算如下: “%” = 25H = 37 = 0010 0101 “0” = 30H = 48 = 0011 0000 XOR .0001 0101 “1” = 31H = 49 = 0011 0001 XOR .0010 0100 . . . “7” = 37H = 55 = 0010 0111 XOR 39H = 57 = 0011 1011

可@可

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 11回
  • 年度积分:0
  • 历史总积分:20
  • 注册:2001年12月12日
发表于:2003-02-25 09:24:00
5楼
谢谢!各位的帮助!我明白了!

广州科达

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 159回
  • 年度积分:0
  • 历史总积分:297
  • 注册:2002年12月21日
发表于:2003-02-26 20:51:00
6楼
TO:YY 我想你在PC机作“主站”PLC作“从站”(即只是PC需要通信编程)的情况能够使用,但若PLC方需通信编程才能使用就不知是否也明白。 不知你是否推算过上面的例子里的运算结果应是“0101 0111”而不是“0011 1011”,另外说CRC的运算结果是一个10进制的“57”也是错误的说法。 准确讲此CRC的运算结果是一个8位的2进制之值。当将它转入通信队列发出时作两个字符看待,其中前一个由从高4位转化,后一个由低4位转化。转化的过程是先将4位2进制数转为一个16进制之数,再将这个数当作一个字符看待。由于在PC机上用“高级语言”编程所以上述的转化(和收发报文)就不用做深入的工作就轻易使用了。如果在PLC上编程就往往要做这些转化过程了(有些机器还要将ASCII码的字符转为对应的16进制值才能收发)。

heaven_tsm

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 9回
  • 年度积分:0
  • 历史总积分:63
  • 注册:2005年4月27日
发表于:2005-05-10 18:17:00
7楼
"松下FP系列的PLC自家协议是“MEWTOCOL-(COM/DATA)”,所用的BCC是“循环冗余校验码”(取8位CRC)。"既然是取crc效验的8位,所以我用crc效验后,来取高8位或者低8位,其中之一应该与bcc效验结果相同。是不是这样呢?但是我算下来不是的。请问是为什么呢?

byf394127377

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2回
  • 年度积分:0
  • 历史总积分:22
  • 注册:2010年11月05日
发表于:2010-12-08 12:27:29
8楼

大家好:谁能给我发个BCC算法呢。。西门子的最好了

谢谢大家了

我的邮箱是:byf394127375@qq.com

mxwkind

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:14
  • 注册:2010年8月18日
发表于:2010-12-16 14:20:23
9楼
我想知道BCC的异或运算的目的,是什么呀,还有最好有相关的例子发给我,非常感谢

热门招聘
相关主题

官方公众号

智造工程师