求助LRC校验 点击:6704 | 回复:18



圆圆的太阳

    
  • 精华:1帖
  • 求助:6帖
  • 帖子:90帖 | 265回
  • 年度积分:0
  • 历史总积分:1791
  • 注册:2007年5月31日
发表于:2011-05-02 19:02:11
楼主

求助三菱FX和台达VFD-M做485通讯时要用LRC校验,可是我计算出来的校验码怎么和例子上的不一样啊,具体要怎么计算啊。

B系列的参数字址是四位的(2000等等),可是M系列的呢?是多少啊?




圆圆的太阳

  • 精华:1帖
  • 求助:6帖
  • 帖子:90帖 | 265回
  • 年度积分:0
  • 历史总积分:1791
  • 注册:2007年5月31日
发表于:2011-05-02 21:59:33
1楼
我的LRC校验程序

LD M8002

MOV H30 D10

MOV H31 D11

MOV H30 D12

MOV H36 D13

MOV H32 D14

MOV H30 D15

MOV H30 D16

MOV H30 D17

MOV H30 D18

MOV H30 D19

MOV H31 D20

MOV H32 D21

LD X0

CCD D10 D100 K12

SUB H0FFFF D100 D100

INC D100

WAND H0FF D100 D100

MOV D100 K2M0

MOV K1 M0 D200

MOV K1M4 D201

END

这三行是我自己加的,因为最终要有两个校验值得出,从LD X0 到END是书上的求反加1的LRC校验程序例子,

MOV D100 K2M0

MOV K1 M0 D200

MOV K1M4 D201

最终我用PLC(我用的是FX1N的PLC)监控,D200 和D201是11和7,而书上的例子得出的是C和7

后来我把D20和D21的数都换成H32,监控D200和D201还是11和7,而例子上是B和7.

请教这是怎么回事啊?
请高手指点。

yjig

  • 精华:2帖
  • 求助:5帖
  • 帖子:97帖 | 5237回
  • 年度积分:0
  • 历史总积分:12514
  • 注册:2004年6月04日
发表于:2011-05-03 09:44:13
2楼
校验码计算方式不对,应该是6个数据进行校验,而不是12个,现在正上班,晚上详谈。

yjig

  • 精华:2帖
  • 求助:5帖
  • 帖子:97帖 | 5237回
  • 年度积分:0
  • 历史总积分:12514
  • 注册:2004年6月04日
发表于:2011-05-03 11:48:42
3楼

你用的VFD-M变频与VFD-B程序一样,没看出有差别,参见以下贴子中的132-162步,也可以直接用台达来替换三菱。

LRC校验应该取:H100-(H01+H06+H20+H00+H00+H12)

而不是如你程序中所示:12个数据参与计算。

http://www.gongkong.com/webpage/forum/201104/2011041209543900004-1.shtml



圆圆的太阳

  • 精华:1帖
  • 求助:6帖
  • 帖子:90帖 | 265回
  • 年度积分:0
  • 历史总积分:1791
  • 注册:2007年5月31日
发表于:2011-05-03 13:36:20
4楼
谢谢,上午看了你的回贴我又想了一下,校验值已经算出来了,和例子上的一样。M和B系列的参数字址定义我也比较了一下,还是有区别的。还有个问题请教一下:1N和2N的485通讯的参数字址定义一样吗?因为我看2N的话位10,11要设为1,1N的需要这样吗?还有就是变频器的参数设置时是选奇校验,偶校验还是无校验呢?LRC是什么校验?

www.ynpax.com

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 280回
  • 年度积分:0
  • 历史总积分:1151
  • 注册:2010年3月19日
发表于:2011-05-03 15:04:02
5楼

LRC就是累加校验,建议你找个modbus协议看看,里面讲了

yjig

  • 精华:2帖
  • 求助:5帖
  • 帖子:97帖 | 5237回
  • 年度积分:0
  • 历史总积分:12514
  • 注册:2004年6月04日
发表于:2011-05-03 16:19:43
6楼

1、1N和2N的485通讯的参数字址定义一样吗?

一样,都是半双工异步通讯,FX2N-485-BD与FX1N-485-BD的设置一样,没区别。

2、变频器的参数设置时是选奇校验,偶校验还是无校验呢?

为了避免接受错误的信息,每发送(接受)一个字节(8位数据),对“1”的个数进行一次检验,也就是“奇校验,偶校验还是无校验”,如果与预先检验的“1”的标准不符,上(下)位机就认为是错误的信息,错误的信息也就不予考虑。当然也可以无须校验,只要PLC与变频的设置一致就行。

3、LRC是什么校验?

奇、偶、无校验是针对发送一个字节而言,LRC校验是针对发送所有的数据(不含帧头、帧尾)而言,理论及文字的解释我也不说了,以台达说明书的介绍为准,LRC校验用于ASCII码通讯模式,以上方式就是(也只能)用的是LRC校验。与此相对的是CRC校验,CRC校验用于RTU通讯模式。

圆圆的太阳

  • 精华:1帖
  • 求助:6帖
  • 帖子:90帖 | 265回
  • 年度积分:0
  • 历史总积分:1791
  • 注册:2007年5月31日
发表于:2011-05-05 19:04:46
7楼
怎么结贴啊?怎么找不到在哪里啊?

圆圆的太阳

  • 精华:1帖
  • 求助:6帖
  • 帖子:90帖 | 265回
  • 年度积分:0
  • 历史总积分:1791
  • 注册:2007年5月31日
发表于:2011-05-05 21:03:09
8楼

为什么我的校验码计算用MOV计算出来的是对的,但是用ASCI计算出来的不一样呢?程序如下:

LD M8002

SET M8161

MOV H01 D0

MOV H06 D1

MOV H20 D2

MOV H00 D3

MOV H00 D4

MOV H12  D5

LD X0

CCD  D0  D100  K6

SUB  HFFFF  D100  D102

INC  D102

WAND  H00FF  D102  D103

MOV  D103  K2M0

MOV  K1M0  D200

MOV  K1M4 D201

监控D200和D201里是7和12,是正确结果。如果把划线部分换成

ASCI  D103  D300 K2

监控D300和D301,数据分别是67和55

请教这是怎么回事啊?

yjig

  • 精华:2帖
  • 求助:5帖
  • 帖子:97帖 | 5237回
  • 年度积分:0
  • 历史总积分:12514
  • 注册:2004年6月04日
发表于:2011-05-05 21:44:13
9楼

CCD D0 D100 K6

SUB K256 D100 D102

ASCI D102 D300 K2

没耐心仔细的看,不知你错在哪。你按以上方式计算。

圆圆的太阳

  • 精华:1帖
  • 求助:6帖
  • 帖子:90帖 | 265回
  • 年度积分:0
  • 历史总积分:1791
  • 注册:2007年5月31日
发表于:2011-05-06 14:17:22
10楼
真是见鬼了,我看很多资料也是照你的方式计算的,我刚刚试了,结果还是67和55。我真的搞不明白错哪里了?

yjig

  • 精华:2帖
  • 求助:5帖
  • 帖子:97帖 | 5237回
  • 年度积分:0
  • 历史总积分:12514
  • 注册:2004年6月04日
发表于:2011-05-06 15:12:33
11楼

不是你见鬼了,是你…,都不好说了,都被你搞糊涂了。

监控D300和D301,数据分别是67和55 ,67是10进制的,换成16进制就是=43(ASCII),该43(ASCII)来源于16进制的“C”(10进制的12),55也是10进的,换成16进制就是=37(ASCII),该37(ASCII)来源于16进制的“7”(10进制也=7)。



圆圆的太阳

  • 精华:1帖
  • 求助:6帖
  • 帖子:90帖 | 265回
  • 年度积分:0
  • 历史总积分:1791
  • 注册:2007年5月31日
发表于:2011-05-06 21:45:10
12楼
回复内容:
对:yjig 关于

不是你见鬼了,是你…,都不好说了,都被你搞糊涂了。

监控D300和D301,数据分别是67和55 ,67是10进制的,换成16进制就是=43(ASCII),该43(ASCII)来源于16进制的“C”(10进制的12),55也是10进的,换成16进制就是=37(ASCII),该37(ASCII)来源于16进制的“7”(10进制也=7)。



内容的回复:

谢谢,原来是这么回事啊,这方面的我理解的还不够。再次感谢你,谢谢!

圆圆的太阳

  • 精华:1帖
  • 求助:6帖
  • 帖子:90帖 | 265回
  • 年度积分:0
  • 历史总积分:1791
  • 注册:2007年5月31日
发表于:2011-05-07 21:32:37
13楼
这两天做了三菱FX1N和台达VFD-M的通讯,遇到一个问题,就是如果单个单个的写正,反,停的时候没问题,如果和在一起写了,变频器就无法运行,程序如下,请高手指点;

fengjunkui

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 11回
  • 年度积分:0
  • 历史总积分:85
  • 注册:2011年3月28日
发表于:2011-05-13 09:53:08
14楼

对于校验的问题 本人也一直头疼 谁有CRC校验的详细注解 请发个案例到JK2915@yahoo.cn  谢谢 特别是台达PLC与ABB变频器通讯的例子

yangjinhuabj1986

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:11
  • 注册:2011年3月13日
发表于:2011-07-10 16:57:54
15楼
各位老板:小弟这段时间在做一个三菱PLC与变频器通信程序遇到一个问题.变频器老是显示一个CE11的一个代码.请问各位老板这是什么原因.我是用的fx2n-485-BD和变频器端RS485接口

a1312200933

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 9回
  • 年度积分:0
  • 历史总积分:49
  • 注册:2011年11月20日
发表于:2012-02-26 00:01:00
16楼

学习了。非常感谢,总算弄明白了,

宴兮

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:1
  • 注册:2015年3月27日
发表于:2015-04-20 16:26:05
17楼

想了好久,看了好久,终于看懂了。

hufei188

  • 精华:0帖
  • 求助:1帖
  • 帖子:5帖 | 118回
  • 年度积分:15
  • 历史总积分:572
  • 注册:2013年11月10日
发表于:2017-10-26 11:32:15
18楼

能否将变频器 通讯参数 说下 


热门招聘
相关主题

官方公众号

智造工程师