通讯格式疑问? 点击:437 | 回复:6



yjig

    
发表于:2012-04-29 15:19:38
楼主
求助帖10分-已结帖

根据网络上流行的资料,本人发现丹拂斯变频有多种通讯格式,各有各的说法,实在搞不清哪一版本是正确的,敬请高手指点。

版本1

台达PLC说明书样例版本,根据说明书解释,所有通讯数据均为16进制,无须转换成ASCII,包括头码16#02在内,都进行异或校验(XOR),同样,校验码也无须转换成ASCII

附件(台达样例):

 



楼主最近还看过



yjig

  • 精华:2帖
  • 求助:6帖
  • 帖子:110帖 | 5237回
  • 年度积分:0
  • 历史总积分:12514
  • 注册:2004年6月04日
发表于:2012-04-29 16:20:32
1楼

版本2

也就是网络上流行的版本,据介绍也是采用DANFOSS-FC协议(糊涂了,又一个FC协议),但此FC协议与台达介绍的不同,台达的样例不需ASCII转换,而FC协议需进行ASCII转换,BCC校验码也比较特殊,仅仅转换1,见下表:

LDSM0.0
    XORB  *VD220,  VB242    //VB242
是校验码
    Network8
    LDSM0.0
    INCD  VD220
    Network9
    NEXT
    Network10
    LDSM0.0
    HTA  VB242,VB265,1       //
此处仅转换1位?
    //BCC
校验码写入发送缓冲区

参见以下网页:

http://bbs.gongkong.com/Details/200808/2008080223211600001-1.shtml

 

yjig

  • 精华:2帖
  • 求助:6帖
  • 帖子:110帖 | 5237回
  • 年度积分:0
  • 历史总积分:12514
  • 注册:2004年6月04日
发表于:2012-04-29 16:33:01
2楼

版本3

该版本是下载网络上的,具体作者也记不清了,与版本2基本相同,也是需要进行ASCII转换,所不同的是:最后校验的BCC码是转换2位,即:

HTA  VB242 ,VB265, 2     //此处转换2位?

 

参见以下程序:

Network 3
LD     SM0.0                       //计算BCC校验码
FOR VW177, +1, +16  
 
Network 4
// 计算BCC校验码
LD SM0.0  
XORB *VD181, VB180  
 
Network 5
LD SM0.0  
INCD VD181  
 
Network 6
NEXT     

Network 7

//BCC校验码写入发送缓冲区,如果VB180=16#8A,且则VB172=16#38,VB173=16#41

LD SM0.0  
HTA    VB180, VB172, 2             //BCC校验码写入发送缓冲区 ,此处转换2位。

Network 8

LD     SM4.5                       //发送反馈信息
XMT VB153, 0  
 

 

以上的通讯协议究竟是怎么回事?

东山脚下-骑士军团

  • 精华:0帖
  • 求助:13帖
  • 帖子:28帖 | 1235回
  • 年度积分:0
  • 历史总积分:4415
  • 注册:2012年4月06日
发表于:2012-04-29 18:46:41
3楼
不是很懂,做个记号,好好研究一下

通讯网

  • 精华:11帖
  • 求助:2帖
  • 帖子:464帖 | 10265回
  • 年度积分:0
  • 历史总积分:24711
  • 注册:2004年7月09日

yjig

  • 精华:2帖
  • 求助:6帖
  • 帖子:110帖 | 5237回
  • 年度积分:0
  • 历史总积分:12514
  • 注册:2004年6月04日
发表于:2012-04-29 21:54:29
5楼

谢谢通讯网指点,但以上资料仍然没有提到ASCII转换方面的内容,版本1(台达样例)却不需要转换,而版本2、3均需要ASCII转换,并且BCC校验的位数还不相等,版本2的BCC是1位,而版本3的BCC校验是2位,为什么?

以下是台达样例的描述:

yjig

  • 精华:2帖
  • 求助:6帖
  • 帖子:110帖 | 5237回
  • 年度积分:0
  • 历史总积分:12514
  • 注册:2004年6月04日
发表于:2012-04-30 14:56:18
6楼
以上通讯程序除了在台达手册介绍了以外,在西门子手册中也有介绍,同样,西门子手册中的程序也未使用ASCII转换,为什么网络上的程序进行了ASCII转换,为什么BCC校验位数不一致,有1位,还有2位?
SSI ļʱ