1.控制寄存器
SMB30控制和设置通信端口0,如果PLC主机上有通信端口1,则用SMB130来进行控制和设置。SMB30和SMB130的各位及其的含义如下:
(1) PP位:奇偶选择。
(2)D位:有效位数。
(3) BBB位:自由口波特率。
(4) MM位:协议选择,即MM用来决定相应通信口的工作模式,其中:
MM=00: PPI从站模式(默认设置为PPI/从站模式)。
MM=01:自由口模式。
MM=10:PPI主站模式。
所以,只要向SMB30或SMB130中写人数值2(即二进制的10),就可以将通信口设置为PPI主站模式。PPI通信速率在“系统块”中设置,在PPI模式下忽略2~7位。
2.传送数据表
(1)数据表格式。执行网络读写指令时,PPI主站与从站之间的数据以数据表的格式传送。传送数据表的格式如表7-7所示。
表7-7 传送数据表格式
字节偏移地址 名 称 描 述
0 状态字节 反映网络指令的执行结果状态及错误码
1 远程站地址 被访问的从PLC站的地址
2 远程站的数
据的指针 被访问数据的间接指针;
指针可以指向1、Q、M和V数据区
3
4
5
6 数据长度 过程站上被访问的数据的长度
7 数据字节O 对NETR指令,执行后,从远程站读的数据放到这个数据区;
NETW指令,执行前,要发送到远程站的数据放到这个数据区
8
…
22 数据字节1
…
数据字节15
(2)状态字节。传送数据表中的第一个字节为状态字节,各位及其的含义如下:
其中,D=1表示操作已完成,D=0表示操作未完成;A=1表示操作有效,A=0表示操作无效。E1、E2、E3、E4为错误编码,如果执行指令后E位为1,则由这4位返回一个错误码。这4位组成的错误编码及含义如表7-8所示。
表7-8 错误编码及含义
E1 E2 E3 E4 错误码 说 明
0000 0 无错误
0001 1 时间溢出错误,远程站点不响应
0010 2 接收错误:奇偶校验错,响应时帧或检查时出错
0011 3 离线错误:相同的站地址或无效的硬件引发冲突
0100 4 列队溢出错误:激活了超过8个NETR和NETW指令
0101 5 违反通信协议:没有在SMB30中允许PPI协议而执行网络指令
0110 6 非法参数:NETR和NETW指令中包含非法或无效的值
0111 7 没有资源:远程站点正在忙中,如上装或下装顺序正在处理中
1000 8 第7层错误,违反应用协议
1001 9 信息错误:错误的数据地址或不正确的数据长度
1010 -1111 A-F 未用,为将来的使用保留
【例7-1】网络通信应用。
有一简单网络,结构如图7-19所示。其中PC为编程电脑,在RUN模式下,CPU 226在用户程序中允许PPI主站模式,可以利用NETR和NETW指令来不断读写CPU 224模块中的数据。
图7-19 网络结构图
操作要求:要求将主站的I0. 0~I0.7的状态映射到从站的Q0. 0~Q0.7,将从站的I0.0~I0.7的状态映射到主站的Q0. 0~Q0.7。
CPU226通信端口号为1,接收缓冲区从VB300开始,发送缓冲区从VB200开始,内容如表7-9所示。CPU224通信端口号为0,从VB200开始设置接收和发送缓冲区。
表7-9 数 据 表
站号 发送缓冲区 接收缓冲区
CPU226 VB200 状态字节 VB300 状态字节
VB201 CPU224的地址(4) VB301 CPU224的地址(4)
VB202 &VB300,CPU224的
接收缓冲区地址 VB302 &VB200,CPU224的
发送缓冲区地址
VB206 1,数据长度字节数 VB306 1,数据长度字节数
VB207 数据字节1 VB307 数据字节1
CPU224 VB200 发送缓冲区字节1 VB300 接收缓冲区字节1