3964(R)协议
- 格式:doc
- 大小:261.00 KB
- 文档页数:8
3964(R)协议参考1.3964(R)协议使用的控制字符与报文帧格式控制字符数值说明STX 02H 被传送文本的起始点DLE 10H 数据链路转换(Data Link Escape)或肯定应答ETX 03H 被传送文本的结束点BCC 块校验字符(BCC:Block Check Character),只用于3964(R)NAK 15H 否定应答(Negative Acknowledge)BCC 是所有正文中的字符(包括正文中连发的DLE)和报文帧结束标志(DLE 和ETX)的“异或”运算的结果。
BCC是异或和校验SXT 正文(发送的数据)DLE ETX BCC3964(R)报文帧格式正文中如果有字符10H,在发送时自动重发一次。
接收方在收到两个连续的10H 时自动地剔除一个。
3964(R)报文帧传输过程2.建立发送数据的连接发送方首先应发送控制字符STX。
在“应答延迟时间(ADT)”到来之前,接收到接收方发来的控制字符DLE,表示通信链路已成功地建立。
如果通信伙伴返回NAK 或返回除DLE 和STX 之外的其他控制代码,或应答延迟时间到时没有应答,程序将再次发送STX,重试连接。
若约定的重试次数到后,都没有成功建立通信链路,程序将放弃建立连接,并发送NAK 给通信伙伴。
接收方在接收到DLE、ETX 和BCC 后,根据接收到的数据计算BCC,并与通信伙伴发送过来的BCC 进行比较。
如果二者相等,并且没有其他接收错误发生,接收方的CPU 将发送DLE,断开通信连接。
如果二者不等,将发送NAK,在规定的块等待时间内(4s)等待重新发送。
如果在设置的重试次数内没有接收到报文,或者在块等待时间内没有进一步的尝试,将取消接收操作。
如果两台设备都请求发送。
具有较低优先级的设备将暂时放弃其发送请求,向对方发送控制字符DLE。
具有较高优先级的设备将以上述方式发送其数据。
等到高优先级的传输结束,连接被释放,具有较低优先级的设备就可以执行其发送请求。
通信的双方必须设置优先级。
[现场总线]ASCII、3964R和RK512除现场总线系统协议外,还定义了大量的数据传输协议作为点对点协议。
有些是工业标准,但是也有一些是设备制造商自己定义的私有协议。
首先你要搞清楚什么是ASCII、3964R和RK512,它们都是用于PTP通讯(点到点通讯)之中的三种协议。
西门子PTP通讯对于300PLC常用的是CP340&CP341,RK512比3964(R)和ASCII驱动具有更好的数据安全性和完整性。
ASCII通讯仅仅是物理层的,3964(R)协议包含物理层和数据链路层,但目前的应用是比较少的。
RK512协议包含物理层、数据链路层和传输层,在3964(R)协议的基础上对每一个命令报文都有一个响应报文,这样发送命令方可以知道是否数据无错船送到对方,或者请求的数据在对方是否有效。
3964(R)协议是RK512协议的一个子集,RK512字符格式中数据位必须是8位;3964(R)协议是本方发送数据对方接收数据的通信形式,而RK512协议通信形式更像服务器与客户端之间的通信,客户端通过“FETCH”读出服务器(通信方)的数据,通过“SEND”修改服务器(通信方)的数据。
客户端成为主动方,服务器成为被动方。
3964R 按照Siemens AG的规范执行,在收发方向上最多240 bytes。
RK512 基于3964R的RK512解释器,发送和读取报文到数据块“D”和扩展数据块“X”作为客户端和服务端。
每个报文最多64 words。
连续报文最多支持1024 words。
ASCII 在广泛领域用于连接的可配置传输协议,例如,尺度、条形码阅读机等等。
Differences between protocols 3964(R) and RK 512QUESTION:What are the differences between protocols 3964(R) and RK 512 in point-to-point communications?ANSWER:The major differences between to the two protocols are the message header and the response messa ge. Using RK 512 provides the highest data integrity. Below is a reference model with classification of the available protocols:Fig. 1: Classification of available protocolsProcedure 3964(R)The procedure 3964(R) adds control characters (security layer) to the information data when transferring it. These control characters enable the communication partner to check whether the data has been received in full and without any errors. The procedures 3964(R) and RK 512 eval uate the following control characters:Meaning (English)Control charactersSTX Start of TextDLE Data Link EscapeETX End of TextBCC Block Check Character (only 3964R/RK512)NAK Negative AcknowledgeTable 1: Overview of control charactersThe following figure shows the sequence of data transfer when sending with procedure 3964(R):Fig. 2: Data traffic when sending with procedure 3964(R)Procedure RK 512In contrast to procedure 3964(R) the computer link RK 512 has the transport laye r (Layer 4) in addition to the bit transfer layer (Layer 1) and the security layer (Layer 2).The computer link RK 512 also provides higher data integrity and better address options. Fig. 3 show s the sequence of data transfer when sending with a response message using computer link RK 512:Fig. 3: Data traffic when sending with response message采用该协议做过一些通讯,比如baumuller PLC与proface HMI的通讯等。
1.3964(R)协议使用的控制字符与报文帧格式BCC 是所有正文中的字符(包括正文中连发的DLE)和报文帧结束标志(DLE 和ETX)的“异或”运算的结果。
3964(R)报文帧格式正文中如果有字符10H,在发送时自动重发一次。
接收方在收到两个连续的10H 时自动地剔除一个。
964(R)报文帧传输过程2.建立发送数据的连接发送方首先应发送控制字符STX。
在“应答延迟时间(ADT)”到来之前,接收到接收方发来的控制字符DLE,表示通信链路已成功地建立。
如果通信伙伴返回NAK 或返回除DLE 和STX 之外的其他控制代码,或应答延迟时间到时没有应答,程序将再次发送STX,重试连接。
若约定的重试次数到后,都没有成功建立通信链路,程序将放弃建立连接,并发送NAK 给通信伙伴。
接收方在接收到DLE、ETX 和BCC 后,根据接收到的数据计算BCC,并与通信伙伴发送过来的BCC 进行比较。
如果二者相等,并且没有其他接收错误发生,接收方的CPU 将发送DLE,断开通信连接。
如果二者不等,将发送NAK,在规定的块等待时间内(4s)等待重新发送。
如果在设置的重试次数内没有接收到报文,或者在块等待时间内没有进一步的尝试,将取消接收操作。
如果两台设备都请求发送。
具有较低优先级的设备将暂时放弃其发送请求,向对方发送控制字符DLE。
具有较高优先级的设备将以上述方式发送其数据。
等到高优先级的传输结束,连接被释放,具有较低优先级的设备就可以执行其发送请求。
通信的双方必须设置优先级。
3964R协议•悬赏分:10•问题为何被关闭如果用到CP340模块,它支持3964R协议,那么如何得到这个协议?上位机是否按照这个协议进行驱动处理就可以了还是说自己在这个基础上在CP340上和PC机上再编写驱动代码?还有个RK512,它和39464R区别?CP340是否均支持?问题补充:ASCII通讯仅仅是物理层的,3964(R)协议包含物理层和数据链路层,但目前的应用是比较少的。
RK512协议包含物理层、数据链路层和传输层那是不是说,如果采用ASCII方式,需要PLC可以发送数据到PC机,但自己必须制定‘协议’,定义各个字节的含义?3964R和RK512就把协议已经制定好了,类似MODBUS协议,我通讯的过程不必考虑数据祯的格式,只需要定义相应的寄存器,这两种就会自动进行处理,不用理会数据祯格式了?问题ID: 1305提问时间:2007-1-16 17:04 提问者:uscorpion - 新生第1级答复CP340只支持ASCII和3964R,不支持RK512。
如果连接上位机请使用MPI 或者DP 或者以太网 340仅用于点对点(多点)的ASCII或者3964R连接。
如果用340连接上位机那是极大的侮辱了西门子的MPI、DP和以太网了。
呵呵,言重了,也许是别的公司的HMI呢,它不支持MPI/DP/以太网,却支持3964R呢,那可能就没办法了。
首先你要搞清楚什么是ASCII、3964R和RK512,它们都是用于PTP通讯(点到点通讯)之中的三种协议。
西门子PTP通讯对于300PLC常用的是CP340&CP341,RK512比3964(R)和ASCII驱动具有更好的数据安全性和完整性。