当应用 RK512 协议与 S5 或其它系统连接时如何设置 SFB12 (B-SEND) 的 R-ID 参数?

描述:
参数R_ID 指向通信伙伴的目的数据区。其数值只在 CPU 启动时被装载一次并且不能再被修改。 R_ID (DWORD) 参数的数据结构如下:n

双字中的地址

含义

字节1,位 0,1,2,3

数据区的标识
DX:0 (十六进制数)
DB:1 (十六进制数)

字节1,位 4,5,6,7

通信双方的交互标识位0-7 (十六进制数);
如果没有标识位,通信协议自动在报文头加入“FH”。

字节2

通信双方的交互标识字节数1-233 (十进制数); 如果没有标识节数使用255 替代(十进制数)。

字节3

偏移值: 0-255 (十进制数,单位为字)。

字节4

DB号:3-255 (十进制数)。

在RK512协议的报文头中包含通信方的目标数据区,发送的数据长度不能大于4K字节。n

SFB12 (BSEND)调用的示例程序:

STL 程序代码

程序注释

L 10
T DB20.DBW6
L B#16#31
T DB20.DBB20
L 30
T DB20.DBB21
L 20
T DB20.DBB22
L 71
T DB20.DBB23n

CALL SFB 12, DB12
REQ :=DB20.DBX0.0
R :=DB20.DBX0.1
ID :=W#16#1000
R_ID :=DB20.DBD20
DONE :=DB20.DBX0.2
ERROR :=DB20.DBX0.3
STATUS :=DB20.DBW2
SD_1 :=p#DB10.DBX5.0 WORD 6
LEN :=DB20.DBW6

发送长度为10 个字节

3表示通信标识位;1表示通信方的地址区DB。

30表示通信标识字节。

20表示通信方数据块的开始地址

71表示通信方的数据块

上升沿触发REQ 参数后,从 DB10.DBB5 开始的10个字节被发送,发送的数据存储于通信方 DB71.DBW5 以后的数据区中,同时通信标识位DB71.D30.3也被发送。存储于 R_ID 的数值只在 CPU 启动时被装载一次并且不能再被修改。

警告:
SD_1发送数据区必须大于发送报文的长度,否则发送失败 (故障号 = 02)。

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc337963.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日 下午12:03
下一篇 2021年4月12日 上午12:00

相关推荐

发表回复

登录后才能评论