PLC 概念 3
TIME 32 位 存储形式
6.2 扩展指令
6.2.5 通信指令
6.2.5.1 开放式以太网通信
可自动连接/断开的开放式以太网通信(TSEND_C 和 TRCV_C)
说明
处理 TSEND_C 和 TRCV_C 指令花费的时间量无法确定。 要确保这些指令在每次扫描循 环中都被处理,务必从主程序循环扫描中对其调用,例如,从程序循环 OB 中或从程序循 环扫描中调用的代码块中对其调用。 不要从硬件中断 OB、延时中断 OB、循环中断 OB、错误中断 OB 或启动 OB 调用这些指令。
有关使用这些指令传送数据的信息,请参阅数据一致性 (页 94)部分。
TSEND_C 描述
TSEND_C 可与伙伴站建立 TCP 或 ISO on TCP 通信连接,发送数据并且可以终止该连
长沙工控帮教育科技有限公司整理
说明
LEN 参数的默认设置 (LEN = 0) 使用 DATA 参数来确定要传送的数据的长度。 确保 TSEND_C 指令传送的 DATA 的大小与 TRCV_C 指令的 DATA 参数的大小相同。
下列功能说明了 TSEND_C 指令的操作:
● 要建立连接,请在 CONT = 1 时执行 TSEND_C。
● 成功建立连接后,TSEND_C 便会置位 DONE 参数一个周期。
● 要终止通信连接,请在 CONT = 0 时执行 TSEND_C。连接将立即中止。 这还会影响 接收站。 将在接收站关闭该连接,并且接收缓冲区内的数据可能会丢失。
● 要通过建立的连接发送数据,请在 REQ 的上升沿执行 TSEND_C。 发送操作成功执 行后,TSEND_C 便会设置 DONE 参数一个周期。
● 要建立连接并发送数据,请在 CONT =1 且 REQ = 1 时执行 TSEND_C。发送操作成 功执行后,TSEND_C 便会置位 DONE 参数一个周期。
TRCV_C 描述
TRCV_C 可与伙伴 CPU 建立 TCP 或 ISO on TCP 通信连接,接收数据并且可以终止该 连接。设置并建立连接后,CPU 会自动保持和监视该连接。 TRCV_C 指令兼具 TCON、
TDISCON 和 TRCV 指令的功能。
使用 TRCV_C 指令可以接收的最小数据单位是字节。 TRCV_C 指令不支持传送布尔数据 或布尔数组。
说明
LEN 参数的默认设置 (LEN = 0) 使用 DATA 参数来确定要传送的数据的长度。 确保 TSEND_C 指令传送的 DATA 的大小与 TRCV_C 指令的 DATA 参数的大小相同。
下列功能说明了 TRCV_C 指令的操作:
● 要建立连接,请在参数 CONT = 1 时执行 TRCV_C。
● 要接收数据,请在参数 EN_R = 1 时执行 TRCV_C。参数 EN_R = 1 且 CONT = 1 时 TRCV_C 连续接收数据。
● 要终止连接,请在参数 CONT = 0 时执行 TRCV_C。连接将立即中止且数据可能丢 失。
长沙工控帮教育科技有限公司整理
接收模式
TRCV_C 处理与 TRCV 指令相同的接收模式。 下表说明了在接收区输入数据的方法。
协议选项 在接收区输入数据 参数“connection_type”
TCP 指定长度的数据接收 B#16#11
ISO on TCP 协议控制 B#16#12
说明
由于 TSEND_C 采用异步处理,所以在 DONE 参数值或 ERROR 参数值为 TRUE 前,必 须保持发送方区域中的数据一致。
对于 TSEND_C,DONE 参数状态为 TRUE 表示数据成功发送。 但并不表示连接伙伴 CPU 实际读取了接收缓冲区。
由于 TRCV_C 采用异步处理,因此仅当参数 DONE = 1 时,接收器区域中的数据才一 致。
下表说明了参数 BUSY、DONE 和 ERROR 之间的关系。
BUSY DONE ERROR 说明
TRUE 不相关 不相关 作业正在处理。
FALSE TRUE FALSE 作业已成功完成。
FALSE FALSE TRUE 该作业以出错而结束。 出错原因可在 STATUS 参数中找 到。
FALSE FALSE FALSE 未分配新作业。
TSEND_C 参数
长沙工控帮教育科技有限公司整理
参数 参数类型 数据类型 说明
REQ INPUT Bool 控制参数 REQ 在上升沿启动具有 CONNECT 中 所述连接的发送作业。
CONT INPUT Bool 0: 断开
1: 建立并保持连接
LEN INPUT Int 要发送的最大字节数。 (默认值 = 0,这表示 DATA 参数决定要发送的数据的长度)。
CONNECT IN_OUT TCON-Param
指向连接描述的指针
DATA IN_OUT Variant 发送区;包含要发送数据的地址和长度。
COM_RST IN_OUT Bool 1: 完成功能块的重新启动,现有连接将终止。
DONE OUTPUT Bool 0: 作业尚未开始或仍在运行。
1: 无错执行作业。
BUSY OUTPUT Bool 0: 作业完成。
1: 作业尚未完成。 无法触发新作业。
ERROR OUTPUT Bool 1: 处理时出错。 STATUS 提供错误类型的详 细信息。
STATUS OUTPUT Word 错误信息
TRCV_C 参数
长沙工控帮教育科技有限公司整理
参数 参数类型 数据类型 说明
CONNECT IN_OUT TCON-Param
ERROR STATUS (W#16#...)
说明
0 0000 作业已无错执行 0 7000 无激活的作业处理
长沙工控帮教育科技有限公司整理
ERROR STATUS (W#16#...)
说明
0 7004 连接已建立并受到监视,无激活的作业处理 1 8085 LEN 参数的值比最大的允许值大
1 8086 CONNECT 参数超出允许范围
1 8087 已达到最大连接数;无法建立更多连接
1 8088 LEN 参数大于 DATA 中指定的存储区;接收存储区过小 1 8089 参数 CONNECT 未指向数据块。
1 8091 超出最大嵌套深度
1 809A CONNECT 参数指向的域与连接描述的长度不匹配。
1 809B 连接描述中的 local_device_id 与 CPU 的不匹配。
1 80A1 通信错误:
尚未建立指定的连接
当前正在终止指定的连接;无法通过该连接传输
正在重新初始化接口 1 80A3 正在尝试终止不存在的连接
1 80A4 远程伙伴连接的 IP 地址无效。 例如,远程伙伴的 IP 地址与本地 伙伴的 IP 地址相同。
1 80A7 通信错误: 在 TCON 完成前调用了 TDISCON(TDISCON 必须 先完全终止 ID 引用的连接)
1 80B2 参数 CONNECT 指向使用关键字 UNLINKED 生成的数据块 1 80B3 不一致的参数:
连接描述错误
本地端口(参数 local_tsap_id)已在另一个连接描述中存在
连接描述中的 ID 与作为参数指定的 ID 不同
长沙工控帮教育科技有限公司整理
ERROR STATUS
使用 TCP 和 ISO on TCP 协议的以太网通信
TCON、TDISCON、TSEND 和 TRCV 异步运行,即,作业处理需要使用多个指令执行 来完成。
TCON
参数 参数类型 数据类型 说明
REQ IN Bool 控制参数 REQUEST 启动用于建立连接的作 业,该连接是通过 ID 指定的。在上升沿启动该 作业。
ID IN CONN_OUC (Word)
引用要建立的、连接到远程伙伴或在用户程序 和操作系统通信层之间的连接。 标识号必须与 本地连接描述中的相关参数标识号相同。
值范围: W#16#0001 到 W#16#0FFF CONNECT IN_OUT
TCON-Param
指向连接描述的指针
DONE OUT Bool 状态参数 DONE:
0: 作业尚未启动或仍在运行
1: 作业已无错执行 BUSY OUT Bool BUSY = 1: 作业尚未完成
BUSY = 0: 作业已完成 ERROR OUT Bool 状态参数 ERROR:
ERROR = 1: 作业处理期间出错。 STATUS 提供错误类型的详细信息。
STATUS OUT Word 状态参数 STATUS:错误信息
长沙工控帮教育科技有限公司整理
TDISCON
TCP 和 ISO on TCP: TDISCON 终止从 CPU 到通信伙伴的通信连 接。
参数 参数类型 数据类型 说明
REQ IN Bool 控制参数 REQUEST 启动用于建立连接的作 业,该连接是通过 ID 指定的。在上升沿启动该 作业。
ID IN CONN_OU C (Word)
引用要终止的、连接到远程伙伴或在用户程序和 操作系统通信层之间的连接。标识号必须与本地 连接描述中的相关参数标识号相同。
值范围: W#16#0001 到 W#16#0FFF DONE OUT Bool 状态参数 DONE:
0: 作业尚未启动或仍在运行
1: 作业已无错执行 BUSY OUT Bool BUSY = 1:作业尚未完成
BUSY = 0:作业已完成 ERROR OUT Bool ERROR = 1:处理时出错。
STATUS OUT Word 错误代码
TSEND
长沙工控帮教育科技有限公司整理
参数 参数类型 数据类型 说明
REQ IN Bool 控制参数 REQUEST 在上升沿启动发送作业。
传送通过 LEN 和 DATA 指定的区域中的数据。
ID IN CONN_OU C (Word)
引用相关的连接。标识号必须与本地连接描述中 的相关参数标识号相同。
值范围: W#16#0001 到 W#16#0FFF
LEN IN Int 要通过作业发送的最大字节数
DATA IN_OUT Variant 指向要发送数据区的指针: 发送方区域;包含 地址和长度。 地址将参考:
过程映像输入表
过程映像输出表
位存储器
数据块
DONE OUT Bool 状态参数 DONE:
0: 作业尚未开始或仍在运行。
1: 无错执行作业。
BUSY OUT Bool BUSY = 1: 作业尚未完成。 无法触发新作 业。
BUSY = 0: 作业已完成。
ERROR OUT Bool 状态参数 ERROR:
ERROR = 1:处理时出错。 STATUS 提供有关 错误类型的详细信息
STATUS OUT Word 状态参数 STATUS:错误信息
TRCV
长沙工控帮教育科技有限公司整理
参数 参数类型 数据类型 说明
接收区
TRCV 指令将收到的数据写入到通过以下两个变量指定的接收区:
● 指向区域起始位置的指针
● 区域长度 说明
LEN 参数的默认设置 (LEN = 0) 使用 DATA 参数来确定要传送的数据的长度。 确保 TSEND 指令传送的 DATA 的大小与 TRCV 指令的 DATA 参数的大小相同。
下表说明了 TRCV 如何在接收区输入接收数据。
协议选项 在接收区输入数据 参数连接类型
TCP 指定长度的数据接收 B#16#11
ISO on TCP 协议控制 B#16#12
接收所有作业数据后,TRCV 立即将其传送到接收区并将 NDR 设置为 1。
TCON 的条件代码
ERROR STATUS (W#16#...)
说明
0 0000 连接已成功建立 0 7000 无激活的作业处理
0 7001 启动作业处理,正在建立连接
0 7002 后续调用(与 REQ 不相关),正在建立连接 1 8086 ID 参数超出允许范围。
1 8087 已达到最大连接数;无法建立更多连接
1 809B 连接描述中的 local_device_id 与 CPU 的不匹配。
1 80A1 连接或端口已被用户占用
1 80A2 本地端口或远程端口已被系统占用
长沙工控帮教育科技有限公司整理
ERROR STATUS
W#16#80A4、W#16#80B4 到 W#16#80B9 对应的组错误 1 80B4 使用 ISO on TCP (connection_type = B#16#12) 建立被动连接
1 80B7 以下参数之一有错误: block_length、local_tsap_id_len、
rem_subnet_id_len、rem_staddr_len、rem_tsap_id_len、
TDISCON 的条件代码
ERROR STATUS (W#16#...)
ERROR STATUS (W#16#...)
ERROR STATUS
6.2.6 中断指令
6.2.6.1 附加和分离指令使用 ATTACH 和 DETACH 指令可激活和禁用中断事件驱动 的子程序。
ATTACH 启用响应硬件中断事件的中断 OB 子程序执行。
DETACH 禁用响应硬件中断事件的中断 OB 子程序执行。
参数 参数类型 数据类型 说明
OB_NR IN Int 组织块标识符:
从使用“添加新块”(Add new block) 功能创建 的可用硬件中断 OB 中进行选择。 双击该参 数域,然后单击助手图标可查看可用的 OB。
EVENT IN DWord 事件标识符:
从在 PLC 设备配置中为数字输入或高速计数 器启用的可用硬件中断事件中进行选择。 双 击该参数域,然后单击助手图标可查看这些可 用事件。
ADD
(仅
ATTACH)
IN Bool ADD = 0(默认): 该事件将取代先前为此 OB 附加的所有事件。
ADD = 1: 该事件将添加到先前为此 OB 附 加的事件中。
RET_VAL OUT Int 执行条件代码
长沙工控帮教育科技有限公司整理
硬件中断事件
CPU 支持以下硬件中断事件:
● 上升沿事件(所有内置 CPU 数字量输入外加任何信号板数字量输入)
– 数字输入从 OFF 切换为 ON 时会出现上升沿,以响应连接到输入的现场设备的信 号变化。
● 下降沿事件(所有内置 CPU 数字量输入外加任何信号板输入)
– 数字输入从 ON 切换为 OFF 时会出现下降沿。
● 高速计数器 (HSC) 当前值 = 参考值 (CV = RV) 事件(HSC 1 至 6)
– 当前计数值从相邻值变为与先前设置的参考值完全匹配时,会生成 HSC 的 CV = RV 中断。
● HSC 方向变化事件(HSC 1 至 6)
– 当检测到 HSC 从增大变为减小或从减小变为增大时,会发生方向变化事件。
● HSC 外部复位事件(HSC 1 至 6)
● HSC 外部复位事件(HSC 1 至 6)