Schneider Electric EcoStruxure™ Control Expert - TCP Open , 功能块库 ユーザーガイド
Oglas
Oglas
EcoStruxure™ Control Expert
33003695 12/2018
EcoStruxure™
Control Expert
TCP Open
功能块库
(英语原始文件译文)
12/2018 www.schneider-electric.com
2
本文档中提供的信息包含有关此处所涉及产品之性能的一般说明和/或技术特性。本文档并非用于
(也不代替) 确定这些产品对于特定用户应用场合的适用性或可靠性。任何此类用户或设备集成商
都有责任就相关特定应用场合或使用方面对产品执行适当且完整的风险分析、评估和测试。
Schneider Electric 或其任何附属机构或子公司对于误用此处包含的信息而产生的后果概不负责。
如果您有关于改进或更正此出版物的任何建议、或者从中发现错误、请通知我们。
本手册可用于法律所界定的个人以及非商业用途。 在未获得施耐德电气书面授权的情况下,不得
翻印传播本手册全部或部分相关内容、亦不可建立任何有关本手册或其内容的超文本链接。施耐
德电气不对个人和非商业机构进行非独占许可以外的授权或许可。 请遵照本手册或其内容原义并
自负风险。与此有关的所有其他权利均由施耐德电气保留。
在安装和使用本产品时,必须遵守国家、地区和当地的所有相关的安全法规。出于安全方面的考
虑和为了帮助确保符合归档的系统数据,只允许制造商对各个组件进行维修。
当设备用于具有技术安全要求的应用场合时,必须遵守有关的使用说明。
未能使用施耐德电气软件或认可的软件配合我们的硬件,则可能导致人身伤害、设备损坏或不正
确的运行结果。
不遵守此信息可能导致人身伤害或设备损坏。
© 2018 Schneider Electric。 保留所有权利。
33003695 12/2018
目录
安全信息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
关于本书 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
第I部分 常规. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
第1章 块类型及其应用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
功能块类型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
FFB 结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
EN 和 ENO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
第2章 各种硬件平台上的功能块的可用性. . . . . . . . . . . . . . . . .
不同硬件平台上的功能块的可用性. . . . . . . . . . . . . . . . . . . . . . . . . . . .
第II部分 TCP Open 简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
第3章 一般信息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TCP Open 的常规信息和原理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
第4章 警告. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
注意事项和警告 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
第5章 操作描述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TCP Open EF 的操作规则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
管理数据通道口操作的原理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TCP Open 通讯 EF 的一般结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TCP Open 管理参数的结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
管理参数:通讯和操作报告 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
客户端/服务器模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
客户端/服务器应用程序的示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
第6章 操作模式和性能. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
网络模块的操作模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
性能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
调试与诊断. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
第III部分 高级. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
第7章 FCT_ACCEPT:接受连接请求 . . . . . . . . . . . . . . . . . . . .
描述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
第8章 FCT_BIND:将数据通道口编号绑定到 IP 地址和端口 . .
描述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
第9章 FCT_CLOSE:删除指定的数据通道口 . . . . . . . . . . . . . .
描述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33003695 12/2018
3
4
第10章 FCT_CONNECT:建立与 IP 地址的连接 . . . . . . . . . . . . .
描述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
第11章 FCT_LISTEN:配置数据通道口等待连接 . . . . . . . . . . . .
描述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
第12章 FCT_RECEIVE:检索数据通道口中的可用数据. . . . . . . .
描述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
第13章 FCT_SELECT:多路复用数据通道口上的请求 . . . . . . . .
描述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
第14章 FCT_SEND:将数据发送到指定的数据通道口. . . . . . . . .
描述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
第15章 FCT_SETSOCKOPT:设置与数据通道口关联的选项 . . .
描述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
第16章 FCT_SHUTDOWN:在数据通道口上禁用传输 . . . . . . . .
描述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
第17章 FCT_SOCKET:创建新数据通道口 . . . . . . . . . . . . . . . . .
描述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
第IV部分 DFB 库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
第18章 DFB 库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DFB 库简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TCP_CNX DFB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TCP_SEND DFB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TCP_RECEIVE DFB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
术语表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
索引 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33003695 12/2018
安全信息
重要信息
声明
在试图安装、操作、维修或维护设备之前,请仔细阅读下述说明并通过查看来熟悉设备。下述特
定信息可能会在本文其他地方或设备上出现,提示用户潜在的危险,或者提醒注意有关阐明或简
化某一过程的信息。
33003695 12/2018
5
6
请注意
电气设备的安装、操作、维修和维护工作仅限于有资质的人员执行。施耐德电气不承担由于使用
本资料所引起的任何后果。
有资质的人员是指掌握与电气设备的制造和操作及其安装相关的技能和知识的人员,他们经过安
全培训能够发现和避免相关的危险。
开始之前
不得将本产品在缺少有效作业点防护的机器上使用。如果机器上缺少有效的作业点防护,则有可
能导致机器的操作人员严重受伤。
警告
未加以防护的设备
不得将此软件及相关自动化设备用在不具有作业点防护的设备上。
在操作期间,不得将手放入机器。
不遵循上述说明可能导致人员伤亡或设备损坏。
此自动化设备及相关软件用于控制多种工业过程。根据所需控制功能、所需防护级别、生产方法、
异常情况、政府法规等因素的不同,适用于各种应用的自动化设备的类型或型号会有所差异。在
某些应用情况下,如果需要后备冗余,则可能需要一个以上的处理器。
只有用户、机器制造商或系统集成商才能清楚知道机器在安装、运行及维护过程中可能出现的各
种情况和因素,因此,也只有他们才能确定可以正确使用的自动化设备和相关安全装置及互锁设
备。在为特定应用选择自动化和控制设备以及相关软件时,您应参考适用的当地和国家标准及法
规。National Safety Council's Accident Prevention Manual (美国全国公认)同样提供有非常有
用的信息。
对于包装机等一些应用而言,必须提供作业点防护等额外的操作人员防护。如果操作人员的手部
及其他身体部位能够自由进入夹点或其他危险区域内,并且可导致人员严重受伤,则必须提供这
种防护。仅凭软件产品自身无法防止操作人员受伤。因此,软件无法被取代,也无法取代作业点
防护。
在使用设备之前,确保与作业点防护相关的适当安全设备与机械/电气联锁装置已经安装并且运
行。与作业点防护相关的所有联锁装置与安全设备必须与相关自动化设备及软件程序配合使用。
注意: 关于协调用于作业点防护的安全设备与机械/电气联锁装置的内容不在本文档中功能块库、
系统用户指南或者其他实施的范围之内。
33003695 12/2018
启动与测试
安装之后,在使用电气控制与自动化设备进行常规操作之前,应当由合格的工作人员对系统进行
一次启动测试,以验证设备正确运行。安排这种检测非常重要,而且应该提供足够长的时间来执
行彻底并且令人满意的测试。
警告
设备操作危险
验证已经完成所有安装与设置步骤。
在执行运行测试之前,将所有元器件上用于运送的挡块或其他临时性支撑物拆下。
从设备上拆下工具、仪表以及去除碎片。
不遵循上述说明可能导致人员伤亡或设备损坏。
执行设备文档中所建议的所有启动测试。保存所有设备文档以供日后参考使用。
必须同时在仿真与真实的网络境中进行软件测试。
按照地方法规(例如:依照美国 National Electrical Code)验证所完成的系统无任何短路且未安
装任何临时接地线。如果必须进行高电位电压测试,请遵循设备文档中的建议,防止设备意外损
坏。
在对设备通电之前:
从设备上拆下工具、仪表以及去除碎片。
关闭设备柜门。
从输入电源线中拆除所有的临时接地线。
执行制造商建议的所有启动测试。
操作与调节
下列预防措施来自于NEMA Standards Publication ICS 7.1-1995(以英文版本为准):
无论在设计与制造设备或者在选择与评估部件时有多谨慎,如果对此类设备造作不当,将会导
致危险出现。
有时会因为对设备调节不当而导致设备运行不令人满意或不安全。在进行功能调节时,始终以
制造商的说明书为向导。进行此类调节的工作人员应当熟悉设备制造商的说明书以及与电气设
备一同使用的机器。
操作人员应当只能进行操作人员实际所需的运行调整。应当限制访问其他控件,以免对运行特
性进行擅自更改。
33003695 12/2018
7
8
33003695 12/2018
关于本书
概览
文档范围
本文档介绍 TCP Open 库的功能和功能块。
有效性说明
此文档适用于 EcoStruxure™ Control Expert 14.0 或更高版本。
相关文档
文档标题 参考号
EcoStruxure™ Control Expert 程序语言和结构参考手册 35006144(英语)、
35006145(法语)、
35006146(德语)、
35013361(意大利语)、
35006147(西班牙语)、
35013362(简体中文)
EcoStruxure™ Control Expert, 操作模式 33003101(英语)、
33003102(法语)、
33003103(德语)、
33003104(西班牙语)、
33003696(意大利语)、
33003697(简体中文)
您可以在我们的网站
息。 www.schneider-electric.com/en/download 下载这些技术出版物和其他技术信
33003695 12/2018
9
10
33003695 12/2018
EcoStruxure™ Control Expert
常规
33003695 12/2018
常规 第I部分
常规
概述
本部分包含 TCP Open 库的常规信息。
本部分包含了哪些内容?
本部分包括以下各章:
1
章
2
块类型及其应用
各种硬件平台上的功能块的可用性
章节标题 页
33003695 12/2018
11
常规
12
33003695 12/2018
EcoStruxure™ Control Expert
块类型及其应用
33003695 12/2018
块类型及其应用 第1章
块类型及其应用
概览
本章说明各种块类型及其应用。
本章包含了哪些内容?
本章包含了以下主题:
功能块类型
FFB 结构
EN 和 ENO
主题 页
33003695 12/2018
13
块类型及其应用
功能块类型
功能块类型
Control Expert中使用了不同的功能块类型。功能块类型统称为 FFB。
以下列出了各种功能块类型:
基本功能 (EF)
基本功能块 (EFB)
导出的功能块 (DFB)
过程
注意: 运动功能块在 Quantum 平台上不可用。
基本功能
基本功能 (EF) 没有内部状态且只有一个输出。如果输入值相同,则执行该功能的输出值也相同,
例如,每次执行两个值相加后都能得到相同的结果。
在图形语言(FBD 和 LD)中,基本功能用包含多个输入和一个输出的块结构表示。输入显示在
块结构的左侧,而输出显示在功能块结构的右侧。功能的名称(即功能类型)则显示在块结构的
中央。
对于某些基本功能,输入值的数量可以增加。
注意: Unity Pro 是版本 13.1 或更高版本的 Control Expert 的原名。
小心
意外的设备行为
对于 Unity Pro V4.0 及更早版本,当您的应用依赖于 EF 的持久性输出数据时,请勿使用链路连
接功能块输出。
不遵循上述说明可能导致人身伤害或设备损坏。
注意: 对于 Unity Pro V4.0 和及更早版本,禁用 EF (EN=0) 会导致连接到其输入/输出的链路发生
复位。请不要使用链路来传输信号状态。必须有一个变量连接到 EF 的输出,并且必须用于连接该
元素的输出。对于 Unity Pro V4.1 及更高版本,即使通过菜单工具程序语言 → 公共 → 激活选项 →
保持禁用的 EF 上的输出连接 (EN=0) 来禁用 EF,您也能保持输出链路。
基本功能块
基本功能块 (EFB) 具有内部状态。如果输入值不变,每次执行的输出值可以不同。例如,计数器
的输出值是递增的。
在图形语言(FBD 和 LD)中,基本功能块用包含多个输入和多个输出的块结构表示。输入显示
在块结构的左侧,而输出显示在功能块结构的右侧。功能块的名称(即功能类型)则显示在块结
构的中央。实例名称显示在块结构的上方。
14
33003695 12/2018
块类型及其应用
导出的功能块
导出的功能块 (DFB) 具有与基本功能块相同的属性。该功能块由用户采用编程语言 FBD、LD、IL
和/或 ST 创建。
过程
过程是带有若干输出的功能。它们没有内部状态。
与基本功能的唯一区别是,过程可以有多个输出且支持 VAR_IN_OUT 数据类型的变量。
过程不返回值。
过程是对 IEC 61131-3 的补充,且必须显式启用。
过程与基本功能之间并没有明显的区别。
注意: Unity Pro 是版本 13.1 或更高版本的 Control Expert 的原名。
小心
意外的设备行为
对于 Unity Pro V4.0 及更早版本,当您的应用依赖于 EF 的持久性输出数据时,请勿使用链路连
接功能块输出。
不遵循上述说明可能导致人身伤害或设备损坏。
注意: 对于 Unity Pro V4.0 和及更早版本,禁用 EF (EN=0) 会导致连接到其输入/输出的链路发生
复位。请不要使用链路来传输信号状态。必须有一个变量连接到 EF 的输出,并且必须用于连接该
元素的输出。对于 Unity Pro V4.1 及更高版本,即使通过菜单工具程序语言 → 公共 → 激活选项 →
保持禁用的 EF 上的输出连接 (EN=0) 来禁用 EF,您也能保持输出链路。
33003695 12/2018
15
块类型及其应用
FFB 结构
结构
每个 FFB 均由操作(FFB 的名称)、操作所需的操作数(形式参数和实际参数)以及基本功能块
/导出的功能块的实例名称构成。
在 FBD 编程语言中调用功能块:
16
小心
应用程序的意外行为
请勿多次调用一个 PLC 循环内的同一个功能块实例
不遵循上述说明可能导致人身伤害或设备损坏。
33003695 12/2018
块类型及其应用
在 ST 编程语言中正式调用功能块:
操作
操作用于确定使用 FFB 执行的功能,例如移位寄存器,转换操作等。
操作数
操作数用于指定与操作一起执行的内容。在 FFB 中,操作数由形式参数和实际参数构成。
形式参数/实际参数
需要通过输入和输出将值传输给 FFB 或从 FFB 传输值。这些输入/输出称为形式参数。
对象链接到形式参数,这些对象中包含当前的过程状态。它们称为实际参数。
在程序运行时,来自过程的值通过实际参数传输给 FFB,处理之后再次输出。
实际参数的数据类型必须与输入/输出(形式参数)的数据类型匹配。唯一的例外是一般输入/输
出,其数据类型由实际参数决定。如果实际参数由数值构成,则会为功能块选择合适的数据类型。
IL/ST 中的 FFB 调用
在文本语言 IL 和 ST 中,可以采用正式和非正式的形式调用 FFB。关于详情,请参阅章节 编程语
言 (参见 EcoStruxure™ Control Expert, 程序语言和结构, 参考手册) 。
正式功能调用示例: out:=LIMIT (MN:=0, IN:=var1, MX:=5);
非正式功能调用示例: out:=LIMIT (0, var1, 5);
注意: EN 和 ENO 只能用在正式调用中。
33003695 12/2018
17
块类型及其应用
VAR_IN_OUT 变量
FFB 常用于在输入处(输入变量)读取变量,然后处理该变量并输出同一变量更改后的值(输出
变量)。
这种特殊类型的输入/输出变量也称为 VAR_IN_OUT 变量。
在图形语言(FBD 和 LD)中,输入和输出变量通过一条线链接在一起,表明它们是一体的。
在 FBD 中,包含 VAR_IN_OUT 变量的功能块:
在 ST 中,包含 VAR_IN_OUT 变量的功能块:
MY_EXAMP1 (IN1:=Input1, IN2:=Input2, IO1:=Comb_IN_OUT,
OUT1=>Output1, OUT2=>Output2);
在使用包含 VAR_IN_OUT 变量的 FFB 时,必须注意以下几点:
必须为 VAR_IN_OUT 输入分配一个变量。
不能将数值或常量赋给 VAR_IN_OUT 输入/输出。
以下限制适用于图形语言(FBD 和 LD):
在使用图形连接时, VAR_IN_OUT 输出只能与 VAR_IN_OUT 输入连接。
VAR_IN_OUT 输入/输出只能与一个图形链接相连接。
VAR_IN_OUT 输入和 VAR_IN_OUT 输出可以与不同的变量/变量组件相连接。在这种情况下,输入
上的变量/变量组件的值将被复制到输出变量/变量组件。
取反不能用在 VAR_IN_OUT 输入/输出上。
VAR_IN_OUT 输出不能采用变量/地址和图形连接的组合。
18
33003695 12/2018
块类型及其应用
EN 和 ENO
描述
可以为 FFB 配置 EN 输入和 ENO 输出。
如果调用 FFB 时 EN 的值等于“0”,将不执行 FFB 所定义的算法,并将 ENO 设置为“0”。
如果调用 FFB 时 EN 的值为“1”,则会执行 FFB 所定义的算法。算法成功执行之后, ENO 的值将设
置为“1”。如果在执行这些算法的过程中检测到某些特定错误情况,则将 ENO 设置为“0”。
如果 EN 引脚未赋值,则在调用 FFB 时,会执行 FFB 所定义的算法(与 EN 等于“1”时的情况相
同)。请参阅 维护已禁用的 EF 上的输出链接 (参见 EcoStruxure™ Control Expert, 操作模式) 。
如果成功执行了算法,那么将 ENO 的值设置为“1”,另外将 ENO 设置为“0”。
如果将 ENO 设置为“0”(这是由于 EN =0、执行过程中检测到错误情况或算法执行失败导致的):
功能块
只有一个链路作为输出参数的功能块中的 EN/ENO:
如果 FunctionBlock_1 的 EN 设置为“0”,则 FunctionBlock_1 的输出连接 OUT 将保持上次正
确执行循环中的状态。
具有一个变量和一个链路作为输出参数的功能块中的 EN/ENO:
如果 FunctionBlock_1 的 EN 设置为“0”,则 FunctionBlock_1 的输出连接 OUT 将保持上次正
确执行循环中的状态。同一个引脚上的变量 OUT1 ,可以保持之前的状态,也可以在不影响连
接的情况下从外部进行更改。变量和链路将分开保存。
功能/过程
注意: Unity Pro 是版本 13.1 或更高版本的 Control Expert 的原名。
小心
意外的设备行为
对于 Unity Pro V4.0 及更早版本,当您的应用依赖于 EF 的持久性输出数据时,请勿使用链路
连接功能块输出。
不遵循上述说明可能导致人身伤害或设备损坏。
33003695 12/2018
19
块类型及其应用
注意: 对于 Unity Pro V4.0 和及更早版本,禁用 EF (EN=0) 会导致连接到其输入/输出的链路
发生复位。请不要使用链路来传输信号状态。必须有一个变量连接到 EF 的输出,并且必须用
于连接该元素的输出。对于 Unity Pro V4.1 及更高版本,即使通过菜单工具程序 语言 → 公共 →
激活选项 → 保持禁用的 EF 上的输出连接 (EN=0) 来禁用 EF,您也能保持输出链路。
如 IEC61131-3 中所定义,未定义已禁用功能( EN 输入设置为“0”)的输出。(这同样适用于过
程。)
此处对这种情况下的输出状态做出了解释:
带有功能/过程(仅将一个链路作为输出参数)的 EN/ENO 处理:
如果 Function/Procedure_1 的 EN 设置为 “0”,则 Function/Procedure_1 输出连接 OUT 也设
置为“0”。
具有一个变量和一个链路作为输出参数的功能块中的 EN/ENO:
如果 Function/Procedure_1 的 EN 设置为 “0”,则 Function/Procedure_1 输出连接 OUT 也设
置为“0”。同一个引脚上的变量 OUT1 ,可以保持之前的状态,也可以在不影响连接的情况下
从外部进行更改。变量和链路将分开保存。
FFB 的输出行为与调用 FFB 时是否未使用 EN / ENO 还是 EN =1 无关。
有条件/无条件 FFB 调用
每个 FFB 都可以被“无条件”或“有条件”调用。条件通过预先链接输入 EN 来实现。
EN 已连接
有条件调用(仅当 EN = 1 时才处理 FFB)
EN 已显示、隐藏并标记为 TRUE,或已显示但未占用
无条件调用(将 FFB 和 EN 分开处理)
注意: 对于已禁用的带有内部时间功能(如 DELAY)的功能块 (EN = 0),时间看上去始终保持运
行,因为此时间是使用系统时钟计算得出的,因而与程序循环和功能块释放无关。
小心
意外的应用程序设备
在设备运行时,请勿禁用带有内部时间功能的功能块。
不遵循上述说明可能导致人身伤害或设备损坏。
20
33003695 12/2018
IL 和 ST 注意事项
对于正式的 FFB 调用, EN 和 ENO 只能用在文本语言中,如:
MY_BLOCK (EN:=enable, IN1:=var1, IN2:=var2,
ENO=>error, OUT1=>result1, OUT2=>result2);
为 ENO 分配变量时必须使用操作符 => 。
EN 和 ENO 不能用于非正式调用。
块类型及其应用
33003695 12/2018
21
块类型及其应用
22
33003695 12/2018
EcoStruxure™ Control Expert
功能块的可用性
33003695 12/2018
各种硬件平台上的功能块的可用性 第2章
各种硬件平台上的功能块的可用性
不同硬件平台上的功能块的可用性
简介
并非所有功能块在所有硬件平台上都可用。可参见下表了解适用于您所在的硬件平台的功能块。
高级
功能块的可用性:
功能块名称
FCT_ACCEPT
FCT_BIND
FCT_BIND_UINT
FCT_CLOSE
FCT_CONNECT
FCT_CONNECT_UINT
FCT_LISTEN
FCT_RECEIVE
FCT_SELECT
FCT_SEND
FCT_SETSOCKOPT
FCT_SHUTDOWN
FCT_SOCKET
过程
过程
过程
过程
过程
过程
功能块类型
过程
过程
过程
过程
过程
过程
过程
-
-
-
-
-
-
-
-
-
-
-
-
-
M340
-
-
-
-
-
-
-
-
-
-
-
-
-
M580
-
-
-
-
-
-
-
-
-
-
-
-
-
Momentum
+
+
+
+
+
+
+
+
+
+
+
+
Premium
+
-
-
-
-
-
-
-
-
-
-
-
-
-
Quantum
-
图例:
+ 可用
不可用
33003695 12/2018
23
功能块的可用性
24
33003695 12/2018
EcoStruxure™ Control Expert
TCP Open 简介
33003695 12/2018
TCP Open 简介 第II部分
TCP Open 简介
概述
本部分介绍可以和 Control Expert中的基本功能 (EF) 一起使用的 TCP Open 服务。
本部分包含了哪些内容?
本部分包括以下各章:
4
5
3
章
6
一般信息
警告
操作描述
操作模式和性能
章节标题 页
33003695 12/2018
25
TCP Open 简介
26
33003695 12/2018
EcoStruxure™ Control Expert
一般信息
33003695 12/2018
一般信息 第3章
一般信息
TCP Open 的常规信息和原理
概览
Premium 的 TCP Open 是一组基本功能 (EF) 和导出的功能块 (DFB),用于为 Premium PLC 的自
动化应用程序提供 TCP/IP 服务。
TCP Open EF 和 DFB 从 CD 安装。一旦在 Control Expert安装后,它们就会出现在高级系列的
TCP Open 库中。
这些预设功能可以用于 TCP/IP 客户端/服务器应用程序,而不要求您具有诸如 C ++ 或 Java 等编
程语言的任何知识。
在所选的自动化语言(ST、LD、FBD 或 IL)中直接使用 EF 和 DFB 进行编程。
在以下模块中提供此 TCP Open:
TSX ETY 110WS
TSX ETY 5103
此文档包含 TCP Open EF 的说明,在安装 CD 上提供有关 TCP Open DFB 的文档。
33003695 12/2018
27
一般信息
28
33003695 12/2018
EcoStruxure™ Control Expert
警告
33003695 12/2018
警告 第4章
警告
注意事项和警告
概览
使用 TCP Open EF 实施 TCP/IP 服务相对比较简单。但是,这种实施有一些先决条件,要遵循与
标准自动化应用程序相同的开发原理。
注意
要使用 TCP Open EF 库,您必须至少具有 TCP/IP 应用程序方面的工作经验并大致了解数据通道
口系统的工作原理。
必须了解客户端/服务器服务实施要遵循的一些编程规则。
警告
意外的设备操作
只有具备处理数据通道口所需技能的合格人员才能执行实施和维护 TCP Open 的操作。对于不具
备开发 TCP/IP 服务能力的人员来说,仅仅阅读本文档是不够的,需要进行专门培训。
尽管采取了所有必要的措施来确保此处提供的信息是准确的、权威性的,但是对于使用此文档所
引起的任何后果,Schneider Electric 概不负责。
不遵循上述说明可能导致人员伤亡或设备损坏。
责任
Schneider Electric 不负责以下事项:
警告
意外系统行为
设计 TCP Open 系统意味着:
检查和验证通讯系统架构(客户端/服务器操作模式和协议、性能等)的设计
检查相应 EF 的实施(或 TCP Open 包中所含示例 EF 的重用)
测试和验证集成到通讯系统架构中的 EF
执行适当的维护和管理诊断错误。
不遵循上述说明可能导致人员伤亡或设备损坏。
33003695 12/2018
29
警告
30
33003695 12/2018
EcoStruxure™ Control Expert
运行
33003695 12/2018
操作描述 第5章
操作描述
本章主题
本章描述使用预设 TCP Open EF 管理 TCP/IP 服务的操作和实施的原理。
本章包含了哪些内容?
本章包含了以下主题:
主题
TCP Open EF 的操作规则
管理数据通道口操作的原理
TCP Open 通讯 EF 的一般结构
TCP Open 管理参数的结构
管理参数:通讯和操作报告
客户端/服务器模型
客户端/服务器应用程序的示例
页
33003695 12/2018
31
运行
TCP Open EF 的操作规则
执行 TCP Open EF
TCP Open EF 是与 PLC 循环异步执行的。每个 EF 调用触发一个涉及相关以太网模块的事务
(TSX ETY 5103 或 TSX ETY 110WS)。
事务在某个 PLC 循环结束时开始,可能需要几个循环才能完成。因此需要管理调用的顺序,以便
不使模块饱和或在上一个操作完成前请求执行新操作。
可能在同一个 PLC 循环中调用几个 TCP/IP 服务。但是,不一定按调用它们的时间顺序来处理它
们。
注意: 我们建议您等待一个函数执行完毕,之后再在同一数据通道口上请求新的服务。
例如,在调用 FCT_BIND EF 之前等待返回 FCT_SOCKET EF,在调用 FCT_LISTEN EF 之前等待返回
FCT_BIND EF。
提供的 EF
我们特意减少了提供的 TCP Open 函数数目并简化了使用这些函数的方式,以便简化这些服务的
实施。
此外,某些参数是 TSX ETY 5103 模块必需的参数。在介绍 FCT_SOCKET (参见第
详细讲述了这些限制。
页) 函数时
32
33003695 12/2018
运行
管理数据通道口操作的原理
简介
数据通道口是 TCP/IP 通讯的基本元素。传输数据的是数据通道口。
TCP/IP 函数库只提供用于两个设备之间的流程管理和连接的数据通道口。
注意: TSX ETY 5103 Premium 架构最多支持 64 个数据通道口,用作侦听(服务器)数据通道口
或已连接(客户端)数据通道口。在服务器应用中,必须至少有 1 个侦听数据通道口。在客户端
连接数与服务器连接数方面,没有其他严格的界限。
既可以通过 FCT_SOCKET (参见第
页) 函数,也可以通过 FCT_ACCEPT (参见第
创建数据通道口。这些函数可返回一个用于访问数据通道口的数字。
页) 函数
建立服务器连接
下表描述为了建立连接需要在服务器上执行的不同步骤。
步骤
1
2
3
4
操作
使用 FCT_SOCKET 函数创建数据通道口
使用 FCT_BIND (参见第
IP 地址)关联。
页) 函数将创建的数据通道口与某个地址(端口号和
使用 FCT_LISTEN (参见第
页) 函数设置接受连接的数据通道口。
注:PLC 充当 TCP 服务器,初始数据通道口侦听并接收客户端数据通道口连接。
将 FCT_ACCEPT (参见第
新数据通道口。
页) 函数应用于此数据通道口,以创建将建立连接的
注:然后将此新数据通道口连接到客户端数据通道口,其编号由 FCT_ACCEPT 函数
返回。接着为其他希望连接到服务器的客户端释放初始数据通道口。
建立客户端连接
下表描述为了建立连接,需要在客户端上执行的不同步骤。
步骤
1
2
操作
使用 FCT_SOCKET 功能块创建数据通道口。该功能块将返回一个数据通道口编号,
在后续的功能块中可以使用该编号。
通过指定另一个以太网设备的 IP 地址以及通讯使用的特定端口,使用
FCT_CONNECT 建立与该以太网设备的连接。
33003695 12/2018
33
运行
通过 TCP 连接交换数据
建立连接之后,就可以传输数据了。使用 FCT_SEND (参见第
第
页) 函数进行传输。下图显示了这些交换的工作原理:
页) 和 FCT_RECEIVE (参见
管理数据通道口
以下是可作用于数据通道口的其他函数:
FCT_SETSOCKOPT (参见第
FCT_CLOSE (参见第
页) :将选项与数据通道口关联。这些选项可以修改数据通道口的
行为。
FCT_SELECT (参见第
页) :用于测试数据通道口上的事件。
FCT_SHUTDOWN (参见第
页) :在数据通道口上禁用传输。
页) :当不再使用数据通道口描述符时将其释放。
34
33003695 12/2018
运行
TCP Open 通讯 EF 的一般结构
概览
以与 PLC 循环异步的方式处理通讯函数。在某个循环中开始执行函数后,要经历几个连续的循环
才能执行完毕。
TCP Open 通讯函数的参数如下所示:
接口号
特定参数
管理参数。
接口号
该接口号对应于主机架中 ETY 模块的插槽号。
注意: 只有机架 0 可以容纳使用 TCP Open 通讯函数的以太网模块。
如果使用的是 TSXETY5103,Premium 架构会将此整数分割成 2 个字节。
低字节包含数据通道口的插槽编号
可以使用高字节中的值,按以下方式扩大数据通道口数:
为了能够完全与在 3.3 版或更低版本的固件上创建的应用程序向后兼容,使用 00
01 表示最多可使用 64 个数据通道口;固件版本必须高于 3.3,以支持该数据通道口扩展
注意: 如果将高字节的值设置为 01(以便将数据通道口数扩大到 64),请确保 TSXETY5103 固
件的版本符合要求。如果固件版本为 3.3 或更低,那么在尝试使用此高字节设置时,模块就会进入
持续的重启循环,从而无法运行。
特定参数
这些参数专用于每个函数。可能有多个参数,这时要用逗号分隔它们。在每个函数的特定章节中
对这些参数进行了描述。
管理参数
管理参数由包含 4 个整数的数组组成,也称为管理表 (参见第
之外,其他与标准通讯 EF 的管理表相同。
页)。除了超时和不管理交换号
33003695 12/2018
35
运行
TCP Open 管理参数的结构
概览
管理参数以包含四个整数的数组形式组织在一起。此数组中包含的值可用于控制通讯功能。
注意: 在技术文档中,这些参数也称为“管理表”或“报告”。
结构
下表对通讯管理表的数据结构进行了描述:
3
4
字序
1
2
最高有效字节
保留
操作报告
保留
长度
最低有效字节
活动位
通讯报告
活动位
此位指示通讯功能的执行状态。
启动时,此位设置为 1;执行完成时,此位恢复为 0。
这是表中第一个元素的第一位。
示例:如果以以下方式声明了管理表:
Tab_Gest ARRAY [1..4] OF INT ,则活动位用 Tab_Gest[1].0
表示法来表示。
注意: 以上使用的注解要求Control Expert在非 IEC 模式中使用。如果情况并非如此,将无法以
这种方式访问 Tab_Gest[1].0
。
操作报告
, 第
页中讲述。
通讯报告
, 第
页中讲述。
长度
长度参数用于 FCT_SEND (参见第
于 FCT_SELECT (参见第
页)
页) 和
功能。对于
FCT_RECEIVE (参见第
FCT_SELECT
页) 功能。长度参数还用
,当 INTE 参数的高字节设置为 00 时,未
使用长度字段。当 INTE 参数的高字节设置为 01 时,您应将长度设置为 8。设置为 8,您就可以看
到与 64 个连接关联的数据。如果设置的值偏低,比如设置为 4,则只能看到与前面 32 路连接关联
的数据。
36
33003695 12/2018
运行
管理参数:通讯和操作报告
概览
通讯报告和操作报告是管理参数的一部分。
注意: 建议是,一旦通讯功能报告执行完成,就应测试通讯功能报告,并且在重新激活通讯功能
报告之前。在冷启动时,在所有情况下,必须检查通讯功能的所有管理参数是否都已复位为 0。
通讯报告
此报告对所有功能通用。当活动位从 1 更改为 0 时,这很重要。
值介于 16#01 与 16#FE 之间的报告涉及到执行该功能的处理器所检测到的错误。
下表列出了此报告的各个值:
值
16#00
16#01
16#05
16#06
16#07
16#0B
16#0E
16#FF
通讯报告(最低有效字节)
交换成功
交换已因超时而停止
注意: :当 Modbus M340 CPU 发送 MODBUS BROADCAST 请求时,我们会获取
此错误代码,尽管广播没有问题。
管理参数格式不正确
特定参数不正确
网络模块缺失或者地址不正确
无系统资源:同步通讯 EF 的数量超过处理器可以管理的最大数量
发送长度不正确
消息被拒绝
注意: 当 TSX SCP/TSX SCY 发送 MODBUS BROADCAST 请求时,会返回值 OK
注意: 此功能可在激活交换之前检测到参数中的错误。此时,活动位保持为 0,并用故障对应的值
来初始化报告。
33003695 12/2018
37
运行
操作报告
此报告字节介绍功能与网络模块的 TCP/IP 堆栈的交互结果。
仅当通讯报告具有以下值时此报告字节才有意义:
16#00(交换成功)
16#FF(消息被拒绝)。
如果此报告的值等于 16#00,则操作报告特定于每个功能。构成这些功能的章节中描述了此报告。
如果通讯报告的值为 16#FF,则操作报告具有以下值:
值
16#0B
16#0C
操作报告(最高有效字节)
无系统资源:同步通讯 EF 的数量超过处理器可以管理的最大数量
网络模块未运行
38
33003695 12/2018
运行
客户端/服务器模型
概览
客户端/服务器模型由两个实体组成,一个实体作为响应请求的服务器,另一个实体作为发出请求
的客户端。
客户端/服务器模型根据特定协议进行操作,该协议必须在连接的每一端实施。
下文对此协议进行了描述。
注意: 如果您要开发自己的客户端/服务器应用程序,必须自己负责测试和管理连接。
描述
该模型的工作原理如下所示:
服务器应用程序进行侦听。
客户端应用程序从服务器应用程序请求服务。
服务器应用程序接受请求。
在这两个实体之间进行交换。
33003695 12/2018
39
运行
示意图
客户端/服务器模型工作原理示意图
40
33003695 12/2018
运行
客户端/服务器应用程序的示例
概览
连接由应用程序管理。只要没有发送任何信息或发生了其他事件,就会认为没有遵循正确的 TCP
顺序终止连接的客户端仍处于连接状态,例如断电时的情况。
下文提供了三个重要的示例,可以帮助您更好地了解该架构的工作机制。
以流程图的形式描述客户端,服务器端则显示为与客户端事件紧密链接的操作序列。
示例 2 显示在 FCT_RECEIVE (Sj) 后客户端连接断开的情景,因为没有 SEND_RECEIVE 处理回路。
33003695 12/2018
41
运行
示例 1
下图描述了在处理两个客户端请求的两个连接时服务器应用程序的工作机制。
42
33003695 12/2018
运行
示例 2
下图描述了在处理同一客户端请求的两个连接时服务器应用程序的工作机制。第一个连接断开没
有遵循正确的 TCP 过程(如电源故障)。只要客户端没有建立新连接,仍认为该数据通道口处于
连接状态。
33003695 12/2018
43
运行
示例 3
下图描述了在处理同一客户端请求的两个连接时服务器应用程序的工作机制。第一个连接断开没
有遵循正确的 TCP 过程(如电源故障)。只要服务器没有发送任何信息,仍认为该数据通道口处
于连接状态。
44
33003695 12/2018
EcoStruxure™ Control Expert
操作模式和性能
33003695 12/2018
操作模式和性能 第6章
操作模式和性能
本章主题
本章介绍 TSX ETY 5103 模块(支持 TCP Open 功能的以太网模块)的操作模式、调试所需的基
本概念和性能特性。
本章包含了哪些内容?
本章包含了以下主题:
网络模块的操作模式
性能
调试与诊断
主题 页
33003695 12/2018
45
操作模式和性能
网络模块的操作模式
概览
TSX ETY 5103 模块有 4 种操作状态:
断电
自检运行
已配置
未配置
在加电时进行自检。
在缺省配置下该模块不工作。
该配置必须通过终端数据通道口而不是通过网络发送到 PLC。
如果模块未正确配置,就不能处理数据通道口,并将拒绝消息发回给 TCP Open 功能。
将配置发送到模块
在以下情况下将配置发送到模块:
下载应用程序时
PLC 加电时
加电时模块连接到机架
热重启或冷重启时
Premium 复位时
配置后的操作模式
警告
应用程序的意外行为 - 热重启或冷重启
程序员必须测试自己程序中的系统位 %S0 和 %S1,以便在执行热启动或冷启动后重建连接。程
序员还必须测试自己的应用程序中的系统位 %S13,以便检查使用 PLC 软件应用程序执行停止/
运行命令之后的第一次扫描。
不遵循上述说明可能导致人员伤亡或设备损坏。
定义配置后,模块按以下方式操作:
步骤
1
2
3
操作
模块复位正在进行的通讯。
结果:终止正在进行的交换;关闭 TCP Open 连接,并删除所有套接字。
模块重新配置自身。
模块已准备好处理应用程序的 TCP Open 通讯功能。
46
33003695 12/2018
操作模式和性能
性能
同时连接数
与 TSX ETY 5103 同时建立的最大 TCP/IP 连接数为:
如果 INTE 的高字节设置为 00,则该数目为 32;其中 16 个可能是已连接(客户端)数据通道
口,另外 16 个可能是侦听(服务器)数据通道口。
如果 INTE 的高字节设置为 01,则该数目为 64。这 64 个数据通道口可用作侦听(服务器)数
据通道口或已连接(客户端)数据通道口的任意组合形式,但有一种例外 — 在服务器应用中,
必须至少有 1 个侦听数据通道口。
数据交换
在一个 PLC 循环中可以发送的最大数据块为 240 个字节。这是由于模块和处理器之间用于数据传
输的 X 总线机制造成的。
如果需要传输一个 8 KB 的消息,必须将此消息分解成若干个 240 字节的数据块。如果要确保数据
块发送的顺序,以便能重新构造完整的消息,则必须在每个循环发送一个数据块。这意味着需要
执行 35 个 PLC 循环 (8*1024/240)。一个 50 毫秒的 PLC 循环将耗时 1.75 秒。
注意: 这些计算是基于使用单个数据通道口的。如果您要管理几个客户端,必须考虑连接的数据
通道口的数目。
对于面向协议的消息,低级接口必须管理分段存储过程。此处所述的性能取决于在同一 PLC 循环
中执行的 FCT_SEND (参见第
页) 或 FCT_RECEIVE (参见第
页) 功能数目。
性能有时会降低,具体取决于其他通讯任务(IO 扫描、全局数据等)占用 TSX ETY 5103 模块资
源的程度。
33003695 12/2018
47
操作模式和性能
调试与诊断
调试屏幕
在在线模式下,可以使用 Control Expert软件通过应用专用的调试屏幕来调试应用程序。
模块调试屏幕只能用于调试。但是,您要注意:
显示的连接数包括:
打开的配置文件连接数 (TCP Open)
专用配置文件连接数(在配置中声明了地址)
在此屏幕中看不到打开的配置文件的 IP 地址。
IP 通讯测试
如果客户端的 IP 地址声明为远程设备(由专用配置文件使用),您可以使用通讯测试窗口测试与
客户端设备的 IP 通讯情况。
通过激活“ping”,使用配置的 IP 地址列表选择要与其通讯的工作站,ping 会返回回路正常或消息
超时的状态。
48
33003695 12/2018
EcoStruxure™ Control Expert
高级
33003695 12/2018
高级 第III部分
高级
概述
本部分描述 高级 系列的基本功能和基本功能块。
本部分包含了哪些内容?
本部分包括以下各章:
14
15
16
17
10
11
12
13
8
9
7
章 章节标题
FCT_ACCEPT:接受连接请求
FCT_BIND:将数据通道口编号绑定到 IP 地址和端口
FCT_CLOSE:删除指定的数据通道口
FCT_CONNECT:建立与 IP 地址的连接
FCT_LISTEN:配置数据通道口等待连接
FCT_RECEIVE:检索数据通道口中的可用数据
FCT_SELECT:多路复用数据通道口上的请求
FCT_SEND:将数据发送到指定的数据通道口
FCT_SETSOCKOPT:设置与数据通道口关联的选项
FCT_SHUTDOWN:在数据通道口上禁用传输
FCT_SOCKET:创建新数据通道口
页
33003695 12/2018
49
高级
50
33003695 12/2018
EcoStruxure™ Control Expert
FCT_ACCEPT
33003695 12/2018
FCT_ACCEPT:接受连接请求 第7章
FCT_ACCEPT:接受连接请求
描述
功能描述
FCT_ACCEPT 函数用于接受指定的数据通道口收到的连接请求。
此连接请求来自外部数据通道口。
在调用 FCT_ACCEPT 之前,必须通过发出 FCT_LISTEN 调用设置该数据通道口以接收连接请求。
FCT_ACCEPT 函数的功能如下所示:
抽取挂起连接队列中的第一个连接请求;
用与原始数据通道口相同的属性创建已连接的数据通道口;
完成外部数据通道口与新数据通道口之间的连接;
为新数据通道口返回一个编号。
新返回的数据通道口编号用于从外部数据通道口读取数据或将数据写入外部数据通道口。它不用
于接受更多的连接。原始数据通道口仍保持打开状态以接受其他连接。
如果队列中没有挂起连接, FCT_ACCEPT 将返回错误。
可以将 EN 和 ENO 配置为附加参数。
在 FBD 中的表示形式
33003695 12/2018
51
FCT_ACCEPT
在 LD 中的表示形式
在 IL 中的表示形式
LD Module_Number
FCT_ACCEPT Socket_Number, Clie_Index, Gest_Index, Management_Param, Client_Address
在 ST 中的表示形式
FCT_ACCEPT(Module_Number, Socket_Number, Clie_Index, Gest_Index, Management_Param,
Client_Address);
52
33003695 12/2018
参数描述
下表对输入参数进行了描述:
参数
Module_Number
Socket_Number
Clie_Index
Gest_Index
类型
INT
INT
INT
INT
注释
机架 0 中网络模块的插槽编号。
低字节是机架 0 中的网络模块的插槽编号
可以使用高字节扩大数据通道口数
00 - 是为了能够完全与在 3.3 版或更低版
本的固件上创建的应用程序向后兼容而
提供的
可以使用 01 至 64 号数据通道口(固件
版本必须高于 3.3)
数据通道口编号
Client_Address
数组中第一个字的标号
Management_Param
数组中第一个字的标号
下表对输出参数进行了描述:
参数
Client_Address
类型
ARRAY[0...3],
类型为 INT
注释
4 个字的数组包含客户端的服务数据通道口编号、
端口号和 IP 地址:
Client_Address [0]:已连接的数据通道口编号
Client_Address [1]:客户端端口号
Client_Address [2]:客户端 IP 地址的最低有
效字
Client_Address [3]:客户端 IP 地址的最高有
效字
下表对输入/输出参数进行了描述:
参数
Management_Param
类型
ARRAY[0...3],
类型为 INT
注释
功能管理数组 (参见第
操作报告可以采用下列值:
页)
16#00: 无错误
16#09: 数据通道口编号无效
16#16: FCT_LISTEN 函数必须在 FCT_ACCEPT
之前调用
16#23: 无连接请求
FCT_ACCEPT
33003695 12/2018
53
FCT_ACCEPT
54
33003695 12/2018
EcoStruxure™ Control Expert
FCT_BIND
33003695 12/2018
FCT_BIND:将数据通道口编号绑定到 IP 地址和端口 第8章
FCT_BIND:将数据通道口编号绑定到 IP 地址和端口
描述
功能描述
FCT_BIND 函数用于给数据通道口分配端口号和因特网地址。
创建数据通道口时不带地址,不能用于接收数据(连接请求除外),直到为数据通道口分配地址
后才能接收数据。网络模块将因特网地址固定为其本地配置的 IP 地址。某些端口号已被网络模块
占用,因而不允许用户使用。这些端口号是:
20 和 21(FTP 端口)
23(Telnet 端口)
67 和 68(BOOTP DHCP 端口)
80(HTTP 端口)
161 和 162(SNMP 端口)
502(Schneider Electric 端口)
5000 和 5001(模块的特定端口)
1024(TCP USER 端口)
3124(I/O 端口)
7400-8400(RTPS 端口)
可以配置附加参数 EN 和 ENO 。
在 FBD 中的表示形式
33003695 12/2018
55
FCT_BIND
在 LD 中的表示形式
在 IL 中的表示形式
LD Module_Number
FCT_BIND Socket_Number, Port_Number, Gest_Index, Management_Param
在 ST 中的表示形式
FCT_BIND(Module_Number, Socket_Number, Port_Number, Gest_Index, Management_Param);
56
33003695 12/2018
FCT_BIND
参数描述
下表对输入参数进行了描述:
参数
Module_Number
Socket_Number
Port_Number
Gest_Index
类型
INT
INT
INT
INT
注释
机架 0 中网络模块的插槽编号。
低字节是机架 0 中的网络模块的插槽编号
可以使用高字节扩大数据通道口数
00 – 是为了能够完全与在 3.3 版或更低版本的固
件上创建的应用程序向后兼容而提供的
可以使用 01 至 64 号数据通道口(固件版本必须
高于 3.3)
数据通道口编号
要分配给数据通道口的端口号
Management_Param
数组中第一个字的索引。
下表对输入/输出参数进行了描述:
参数
Management_Param
类型
ARRAY[0...3]
OF INT
注释
功能管理数组 (参见第
操作报告可以采用下列值:
页)
16#00 : 无错误
16#09 : 数据通道口编号无效
16#16 : 数据通道口已绑定
16#30 : 指定的端口已在使用
16#37 : 指定的端口号不可用
16#41 : 未路由到主机
配置高于 32K 的端口号
端口参数的数据类型是整数。如果要使用高于 15 位(高于 32K)的端口号,则必须通过
UINT_TO_INT 功能块将 无符号整数 格式(16 位编码)转换成 整数 格式。使用高于 32K 的端口号
时,可先使用 UINT_TO_INT 功能块,再使用 EF FCT_BIND 或 FCT_CONNECT 。
输入参数:
参数
UINT_variable
数据类型
UINT
含义
输入值
输出参数:
参数
ConvertedVariable
数据类型
INT
含义
输出值
33003695 12/2018
57
FCT_BIND
58
33003695 12/2018
EcoStruxure™ Control Expert
FCT_CLOSE
33003695 12/2018
FCT_CLOSE:删除指定的数据通道口 第9章
FCT_CLOSE:删除指定的数据通道口
描述
功能描述
FCT_CLOSE 函数用于删除指定的数据通道口。
注意: 如果未指明数据通道口编号或数据通道口编号为 0,将删除所有打开的数据通道口。
当使用 FCT_SOCKET 时由于是用 SO_LINGER 选项打开数据通道口的,因此不阻塞 FCT_CLOSE 函数,
即使队列尚未发送或尚未确认。这称为硬关闭或异常终止关闭,因为数据通道口的虚拟电路将立
即复位,所有未发送的数据将丢失。
在电路的另一端对 FCT_RECEIVE 函数的任何调用将失败,并显示错误消息: 连接复位 (16#36) 。
可以将 EN 和 ENO 配置为附加参数。
在 FBD 中的表示形式
33003695 12/2018
59
FCT_CLOSE
在 LD 中的表示形式
在 IL 中的表示形式
LD Module_Number
FCT_CLOSE Socket_Number, Gest_Index, Management_Param
在 ST 中的表示形式
FCT_CLOSE(Module_Number, Socket_Number, Gest_Index, Management_Param);
60
33003695 12/2018
参数描述
下表对输入参数进行了描述:
参数
Module_Number
Socket_Number
Gest_Index
类型
INT
INT
INT
注释
机架 0 中网络模块的插槽编号。
低字节是机架 0 中的网络模块的插槽编号
可以使用高字节扩大数据通道口数
00 - 是为了能够完全与在 3.3 版或更低版
本的固件上创建的应用程序向后兼容而
提供的
可以使用 01 至 64 号数据通道口(固件
版本必须高于 3.3)
要删除的数据通道口编号。如果
Socket_Number
的值为 0,将删除所有数据通道口。
Management_Param
数组中第一个字的标号
下表对输入/输出参数进行了描述:
参数
Management_Param
类型
ARRAY[0...3],
类型为 INT
注释
功能管理数组 (参见第
操作报告可以采用下列值:
页)
16#00: 无错误
16#16: 数据通道口编号无效
FCT_CLOSE
33003695 12/2018
61
FCT_CLOSE
62
33003695 12/2018
EcoStruxure™ Control Expert
FCT_CONNECT
33003695 12/2018
FCT_CONNECT:建立与 IP 地址的连接 第10章
FCT_CONNECT:建立与 IP 地址的连接
描述
功能描述
FCT_CONNECT 函数用于建立到已知端口和因特网地址的连接。
可以配置附加参数 EN 和 ENO 。
在 FBD 中的表示形式
在 LD 中的表示形式
33003695 12/2018
63
FCT_CONNECT
在 IL 中的表示形式
LD Module_Number
FCT_CONNECT Socket_Number, Serv_Index, Gest_Index, Server_Address, Management_Param
在 ST 中的表示形式
FCT_CONNECT(Module_Number, Socket_Number, Serv_Index, Gest_Index, Server_Address,
Management_Param);
参数描述
下表对输入参数进行了描述:
参数
Module_Number
Socket_Number
Serv_Index
Gest_Index
Server_Address
类型
INT
INT
INT
INT
INT
注释
机架 0 中网络模块的插槽编号。
低字节是机架 0 中的网络模块的插槽编号
可以使用高字节扩大数据通道口数
00 – 是为了能够完全与在 3.3 版或更低版
本的固件上创建的应用程序向后兼容而
提供的
可以使用 01 至 64 号数据通道口(固件
版本必须高于 3.3)
数据通道口编号
Server_Address
数组中第一个字的索引
Management_Param
数组中第一个字的索引
3 个字的数组包含服务器的端口号和 IP 地址
下表对输入/输出参数进行了描述:
参数
Management_Param
类型
ARRAY[0...3] OF
INT
注释
功能管理数组 (参见第
操作报告可以采用下列值:
页)
16#00 : 操作正确
16#09 : 数据通道口编号无效
16#16 : 参数无效
16#20 : 连接断开
16#24 : 连接正在进行
16#38 : 数据通道口已连接
16#3D :连接被拒绝
16#41 : 未路由到主机
64
33003695 12/2018
FCT_CONNECT
配置高于 32K 的端口号
端口参数的数据类型是整数。如果要使用高于 15 位(高于 32K)的端口号,则必须通过
UINT_TO_INT 功能块将 无符号整数 格式(16 位编码)转换成 整数 格式。使用高于 32K 的端口号
时,可先使用 UINT_TO_INT 功能块,再使用 EF FCT_BIND 或 FCT_CONNECT 。
输入参数:
参数
UINT_variable
数据类型
UINT
含义
输入值
输出参数:
参数
ConvertedVariable
数据类型
INT
含义
输出值
33003695 12/2018
65
FCT_CONNECT
66
33003695 12/2018
EcoStruxure™ Control Expert
FCT_LISTEN
33003695 12/2018
FCT_LISTEN:配置数据通道口等待连接 第11章
FCT_LISTEN:配置数据通道口等待连接
描述
功能描述
FCT_LISTEN 函数用于设置指定的数据通道口以接收连接。
连接请求在数据通道口上排队,直到通过 FCT_ACCEPT 调用接受为止。队列的长度设置为 16。如果
队列已满时连接请求到达,则给发出请求的客户端返回 ECONNREFUSED(16#3D) 错误。
可以将 EN 和 ENO 配置为附加参数。
在 FBD 中的表示形式
在 LD 中的表示形式
33003695 12/2018
67
FCT_LISTEN
在 IL 中的表示形式
LD Module_Number
FCT_LISTEN Socket_Number, Gest_Index, Management_Param
在 ST 中的表示形式
FCT_LISTEN(Module_Number, Socket_Number, Gest_Index, Management_Param);
参数描述
下表对输入参数进行了描述:
参数
Module_Number
Socket_Number
Gest_Index
类型
INT
INT
INT
注释
机架 0 中网络模块的插槽编号。
低字节是机架 0 中的网络模块的插槽编号
可以使用高字节扩大数据通道口数
00 - 是为了能够完全与在 3.3 版或更低版
本的固件上创建的应用程序向后兼容而
提供的
可以使用 01 至 64 号数据通道口(固件
版本必须高于 3.3)
数据通道口编号
Management_Param 数组中第一个字的标号。
下表对输入/输出参数进行了描述:
参数
Management_Param
类型
ARRAY[0...3],
类型为
INT
注释
功能管理数组 (参见第
操作报告可以采用下列值:
页)
16#00: 无错误
16#09: 数据通道口编号无效
68
33003695 12/2018
EcoStruxure™ Control Expert
FCT_RECEIVE
33003695 12/2018
FCT_RECEIVE:检索数据通道口中的可用数据 第12章
FCT_RECEIVE:检索数据通道口中的可用数据
描述
功能描述
FCT_RECEIVE 函数用于查找数据通道口上可用的数据。读取的数据的最大长度为 240 个字节。
它将返回在数据通道口中读取的字节数。应始终测试该值,因为这是检查用户缓冲区中存储的实
际数据字节数的唯一方法。
注意: FCT_RECEIVE 不返回带外数据。
可以将 EN 和 ENO 配置为附加参数。
在 FBD 中的表示形式
33003695 12/2018
69
FCT_RECEIVE
在 LD 中的表示形式
在 IL 中的表示形式
LD Module_Number
FCT_RECEIVE Socket_Number, Pbuf_Index, Gest_Index, Management_Param, Received_Data
在 ST 中的表示形式
FCT_RECEIVE(Module_Number, Socket_Number, Pbuf_Index, Gest_Index, Management_Param,
Received_Data);
70
33003695 12/2018
FCT_RECEIVE
参数描述
下表对输入参数进行了描述:
参数
Module_Number
Socket_Number
Pbuf_Index
Gest_Index
类型
INT
INT
INT
INT
注释
机架 0 中网络模块的插槽编号。
低字节是机架 0 中的网络模块的插槽编号
可以使用高字节扩大数据通道口数
00 - 是为了能够完全与在 3.3 版或更低版本的固件上创建的
应用程序向后兼容而提供的
可以使用 01 至 64 号数据通道口(固件版本必须高于 3.3)
数据通道口编号
Received_Data
数组中第一个字的标号
Management_Param
数组中第一个字的标号
下表对输出参数进行了描述:
参数
Received_Data
类型
ARRAY[0...n],
类型为 INT
注释
最多容纳 240 个字节的数组包含在数据通道口上读取的数据
下表对输入/输出参数进行了描述:
参数
Management_Param
类型
ARRAY[0...3],
类型为
INT
注释
功能管理数组 (参见第
操作报告可以采用下列值:
页)
16#00 : 无错误
16#09 : 数据通道口编号无效
16#23 : 没有要读取的数据
16#36 : 连接已由对等设备复位
16#39 : 数据通道口尚未连接(侦听数据通道口)
16#3C:在中断的连接上保持活动状态超时
16#0E:要接收的字符串长度超过 240 个字节
如果无错误发生,数组的第四个字应包含收到的字节数。
33003695 12/2018
71
FCT_RECEIVE
72
33003695 12/2018
EcoStruxure™ Control Expert
FCT_SELECT
33003695 12/2018
FCT_SELECT:多路复用数据通道口上的请求 第13章
FCT_SELECT:多路复用数据通道口上的请求
描述
功能描述
FCT_SELECT 函数用于在多个数据通道口中多路复用 I/O 请求。它使用整数数组指示哪些数据通道
口有事件要处理。
对于 3.3 版或更低版本的 ETY 5103 固件:
给数据通道口描述符分配从 1 到 32 的数据通道口编号:
将从 1 到 16 的编号分配给 Socket 函数创建的数据通道口。它们是客户端数据通道口。
将从 17 到 32 的编号分配给 Accept 函数创建的数据通道口。它们是服务器数据通道口。
MASK ( Socket_Activity ) 数组用于诊断侦听(服务器)和已连接(客户端)数据通道口的状
态。
服务器视角:数组的每一个字均使用数组可用位对应初始步骤中的侦听数据通道口。Accept
函数输出另一个数据通道口编号,用于在数组的第二个字中定位其关联位,该位负责报告服
务器连接的状态。
客户端视角:数组的第一个字负责报告客户端连接的状态。
对于版本高于 3.3 的 ETY 5103 固件:
最多可以分配 64 个数据通道口,用作侦听(服务器)数据通道口或已连接(客户端)数据通
道口。在服务器应用中,必须至少有 1 个侦听数据通道口。在侦听数据通道口和已连接数据通
道口之间,没有其他严格的界限。
若要确定侦听数据通道口,请参见 Socket 函数作为输出提供的数据通道口编号。
若要确定已连接数据通道口,请参见 Accept 函数作为输出提供的数据通道口编号。
MASK ( Socket_Activity ) 数组用于诊断现在合并为 2 字或 4 字数组(请参见下面的注释)的
侦听和已连接数据通道口状态。必须使用 Socket 或 Accept 函数的输出在数组中定位对应位。
请参见参数表说明 (参见第
页)中的 Socket_Activity 。
注意: 对于高于 3.3 的版本,Management_Param 结构中必须存在长度参数。
如果 INTE 参数的高字节设置为 00,则不使用长度字段。如果 INTE 参数的高字节设置为 01,则
应该将长度设置为 8,以便能看到与所有 64 路连接关联的数据。如果设置的值偏低,比如设置为
4,则只能看到与前面 32 路连接关联的数据。
可以配置附加参数 EN 和 ENO 。
33003695 12/2018
73
FCT_SELECT
在 FBD 中的表示形式
在 LD 中的表示形式
在 IL 中的表示形式
LD Module_Number
FCT_SELECT Mask_Index, Gest_Index, Management_Param, Socket_Activity
在 ST 中的表示形式
FCT_SELECT(Module_Number, Mask_Index, Gest_Index, Management_Param, Socket_Activity);
74
33003695 12/2018
参数描述
下表对输入参数进行了描述:
参数
Module_Number
Mask_Index
Gest_Index
类型
INT
INT
INT
注释
机架 0 中网络模块的插槽编号。
低字节是机架 0 中的网络模块的插槽编号。
可以使用高字节扩大数据通道口数。
00: 是为了能够完全与在 3.3 版或更低版本的固件
上创建的应用程序向后兼容而提供的。
01: 可以使用最多 64 个数据通道口(固件版本必
须高于 3.3)。
Socket_Activity
数组中第一个字的索引
Management_Param
数组中第一个字的索引
下表对输入/输出参数进行了描述:
参数
Management_Param
类型
ARRAY[0...3]
OF INT
注释
功能管理数组 (参见第
无错误发生。
页)
对于此函数,操作报告始终返回值 16#00,指示
FCT_SELECT
33003695 12/2018
75
FCT_SELECT
下表对输出参数进行了描述:
参数 类型
Socket_Activity ARRAY[0...1] OF INT
- 或 -
ARRAY[0...3] OF INT
(请参考函数说明 (参见第
主题中的注释。)
页)
注释
每个数据通道口的状态。设置为 1 的每个位指
示对应于此位的数据通道口上的事件。例如:
对于 3.3 版或更低版本:
如果第一个字的第 5 位的值为 1,将由
FCT_ACCEPT 函数读取数据通道口 6。
如果第二个字的第 3 位的值为 1,将由
FCT_RECEIVE
函数读取数据通道口 20。
对于高于 3.3 版的版本:
如果某个位在侦听数据通道口上设置为 1,
则表示服务器已可以接受此连接。如果某个
位在已连接数据通道口上设置为 1,则表示
数据已可以发送,或者通讯已中断。
客户端视角:在具有客户端连接后,该连接
(数据通道口编号)的对应位会在数组中设置为
1。示例:数据通道口 33 位于第三个字的第一
个位(位 0)。
服务器视角:侦听函数会打开一个数据通道口。
此数据通道口编号的对应位在数组中设置为 1。
示例:数据通道口 3 位于第一个字的第三个位
(位 2)。然后,Accept 函数会返回另一个数据
通道口编号,此数据通道口编号的对应位在数
组中设置为 1。
注意: 侦听函数数据通道口编号位会保持设
置为 1,直至数据通道口关闭。
76
33003695 12/2018
EcoStruxure™ Control Expert
FCT_SEND
33003695 12/2018
FCT_SEND:将数据发送到指定的数据通道口 第14章
FCT_SEND:将数据发送到指定的数据通道口
描述
功能描述
FCT_SEND 功能用于将数据发送到外部数据通道口。发送的数据的最大长度为 240 个字节。
注意: 不能发送带外数据。
可以将 EN 和 ENO 配置为附加参数。
在 FBD 中的表示形式
33003695 12/2018
77
FCT_SEND
在 LD 中的表示形式
在 IL 中的表示形式
LD Module_Number
FCT_SEND Socket_Number, Pbuf_Index, Gest_Index,Data_to_Send, Management_Param
在 ST 中的表示形式
FCT_SEND(Module_Number, Socket_Number, Pbuf_Index, Gest_Index,Data_to_Send,
Management_Param);
78
33003695 12/2018
参数描述
下表对输入参数进行描述:
参数
Module_Number
Socket_Number
Pbuf_Index
Gest_Index
Data_to_Send
类型
INT
INT
INT
INT
ARRAY[0...n],
类型为
INT
注释
机架 0 中网络模块的插槽编号。
低字节是机架 0 中的网络模块的插槽编号
可以使用高字节扩大数据通道口数
00 - 是为了能够完全与在 3.3 版或更低版本
的固件上创建的应用程序向后兼容而提供的
可以使用 01 至 64 号数据通道口(固件版本
必须高于 3.3)
数据通道口编号
Pbuf_Address
数组中第一个字的标号
Management_Param
数组中第一个字的标号
最多容纳 120 个字的数组(包含要发送的数据)
下表对输入/输出参数进行描述:
参数
Management_Param
类型
ARRAY[0...3]
OF INT
注释
功能管理数组 (参见第
操作报告可以采用下列值:
页)
16#00:无错误
16#09:数据通道口编号无效
16#20:通讯断开
16#23:数据通道口已满
16#36:连接已由对等设备复位
16#39:数据通道口尚未连接(侦听数据通
道口)
16#0E:要发送的字符串长度超过 240 个字节
如果无错误发生,数组的第四个字应包含发送的
字节数。
FCT_SEND
33003695 12/2018
79
FCT_SEND
80
33003695 12/2018
EcoStruxure™ Control Expert
FCT_SETSOCKOPT
33003695 12/2018
FCT_SETSOCKOPT:设置与数据通道口关联的选项 第15章
FCT_SETSOCKOPT:设置与数据通道口关联的选项
描述
功能描述
FCT_SETSOCKOPT 函数用于设置与指定数据通道口关联的选项。当数据通道口由 FCT_SOCKET (参见
第
页) 函数创建时,自动设置一些选项。
提供以下选项:
DONT_ROUTE:指示不对传出的数据进行路由。删除定向到未连接的节点的数据包。
RESET_DONT_ROUTE:复位 DONT_ROUTE。
KEEP_ALIVE:定期在数据通道口上自动发送数据包,确保连接处于活动状态。
RESET_KEEP_ALIVE:复位 KEEP_ALIVE。
通过在 Option_Type 变量中分配一个数字,可以选择这些选项。
可以将 EN 和 ENO 配置为附加参数。
在 FBD 中的表示形式
33003695 12/2018
81
FCT_SETSOCKOPT
在 LD 中的表示形式
在 IL 中的表示形式
LD Module_Number
FCT_SETSOCKOPT Socket_Number, Option_Type, Gest_Index, Management_Param
在 ST 中的表示形式
FCT_SETSOCKOPT(Module_Number, Socket_Number, Option_Type, Gest_Index,
Management_Param);
82
33003695 12/2018
FCT_SETSOCKOPT
参数描述
下表对输入参数进行了描述:
参数
Module_Number
Socket_Number
Option_Type
Gest_Index
类型
INT
INT
INT
INT
注释
机架 0 中网络模块的插槽编号。
低字节是机架 0 中的网络模块的插槽编号
可以使用高字节扩大数据通道口数
00 - 是为了能够完全与在 3.3 版或更低版
本的固件上创建的应用程序向后兼容而
提供的
可以使用 01 至 64 号数据通道口(固件
版本必须高于 3.3)
数据通道口编号
与数据通道口关联的选项类型。可以赋予此字
的值如下所示:
1 用于 DONT_ROUTE
2 用于 RESET_DONT_ROUTE
3 用于 KEEP_ALIVE
4 用于 RESET_KEEP_ALIVE
Management_Param 数组中第一个字的标号。
下表对输入/输出参数进行了描述:
参数
Management_Param
类型
ARRAY[0...3],
类型为
INT
注释
功能管理数组 (参见第
操作报告可以采用下列值:
页)
16#00 : 无错误
16#09 : 数据通道口编号无效
16#16 : 选项无效
数组的第四个字应包含缓冲区存储的字节数。
33003695 12/2018
83
FCT_SETSOCKOPT
84
33003695 12/2018
EcoStruxure™ Control Expert
FCT_SHUTDOWN
33003695 12/2018
FCT_SHUTDOWN:在数据通道口上禁用传输 第16章
FCT_SHUTDOWN:在数据通道口上禁用传输
描述
功能描述
FCT_SHUTDOWN 函数用于禁止在数据通道口上进行发送/接收传输。
TCP 窗口保持不变,将接受(但不确认)传入的数据,直到窗口时间用完。
注意: 该函数不关闭数据通道口,直到发送 FCT_CLOSE 后,才释放分配给数据通道口的资源。但
是,在执行 FCT_SHUTDOWN 函数后,不要尝试重用数据通道口。
可以将 EN 和 ENO 配置为附加参数。
在 FBD 中的表示形式
33003695 12/2018
85
FCT_SHUTDOWN
在 LD 中的表示形式
在 IL 中的表示形式
LD Module_Number
FCT_SHUTDOWN Socket_Number, Shutdown_Option, Gest_Index, Management_Param
在 ST 中的表示形式
FCT_SHUTDOWN(Module_Number, Socket_Number, Shutdown_Option, Gest_Index,
Management_Param);
86
33003695 12/2018
FCT_SHUTDOWN
参数描述
下表对输入参数进行了描述:
参数
Module_Number
Socket_Number
Shutdown_Option
Gest_Index
类型
INT
INT
INT
INT
注释
机架 0 中网络模块的插槽编号。
低字节是机架 0 中的网络模块的插槽编号
可以使用高字节扩大数据通道口数
00 - 是为了能够完全与在 3.3 版或更低版本的
固件上创建的应用程序向后兼容而提供的
可以使用 01 至 64 号数据通道口(固件版本必
须高于 3.3)
数据通道口编号
禁用传输选项:
0: 不再允许在数据通道口上执行接收
1: 不再允许在数据通道口上执行发送,已发送 FIN
消息
2: 不再允许在数据通道口上执行发送或接收。
此选项执行的操作等同于前两个选项的共同操作。
Management_Param 数组中第一个字的标号。
下表对输入/输出参数进行了描述:
参数
Management_Param
类型
ARRAY[0...3],
类型为 INT
注释
功能管理数组 (参见第
操作报告可以采用下列值:
页)
16#00: 无错误
16#09: 数据通道口编号无效
16#16: 参数无效
16#39: 数据通道口尚未连接
33003695 12/2018
87
FCT_SHUTDOWN
88
33003695 12/2018
EcoStruxure™ Control Expert
FCT_SOCKET
33003695 12/2018
FCT_SOCKET:创建新数据通道口 第17章
FCT_SOCKET:创建新数据通道口
描述
功能描述
FCT_SOCKET 函数用于创建新数据通道口并返回其数据通道口编号。数据通道口是 TCP/IP 通讯实
体。
用以下选项将其创建为 STREAM TCP 数据通道口:
不带超时值的 SO_LINGER :此选项控制当在数据通道口上对未发送的数据进行排队并执行
FCT_CLOSE 函数时要采取的操作。
NO_DELAY 。禁用延迟确认算法。立即通过网络发送数据,而不是等待窗口变满。
KEEP_ALIVE 。定期自动发送数据通道口上的数据包,以使连接处于活动状态。
REUSEADDR 。调用 FCT_BIND 时授权重用本地端口。
可以将 EN 和 ENO 配置为附加参数。
在 FBD 中的表示形式
在 LD 中的表示形式
33003695 12/2018
89
FCT_SOCKET
在 IL 中的表示形式
LD Module_Number
FCT_SOCKET Gest_Index,Management_Param, Socket_Number
在 ST 中的表示形式
FCT_SOCKET(Module_Number, Gest_Index, Management_Param, Socket_Number);
参数描述
下表对输入参数进行了描述:
参数
Module_Number
Gest_Index
类型
INT
INT
注释
机架 0 中网络模块的插槽编号。
低字节是机架 0 中的网络模块的插槽编号
可以使用高字节扩大数据通道口数
00 - 是为了能够完全与在 3.3 版或更低版
本的固件上创建的应用程序向后兼容而
提供的
可以分配 01 至 64 个数据通道口(固件
版本必须高于 3.3)
Management_Param 数组中第一个字的标号。
下表对输出参数进行了描述:
参数
Socket_Number
类型
INT
注释
无错误时创建的数据通道口编号。
下表对输入/输出参数进行了描述:
参数
Management_Param
类型
ARRAY[0...3],
类型为 INT
注释
功能管理数组 (参见第
操作报告可以采用下列值:
页)
16#00: 无错误
16#37: 达到数据通道口的最大数目
90
33003695 12/2018
EcoStruxure™ Control Expert
DFB 库
33003695 12/2018
DFB 库 第IV部分
DFB 库
33003695 12/2018
91
DFB 库
92
33003695 12/2018
EcoStruxure™ Control Expert
DFB 库
33003695 12/2018
DFB 库 第18章
DFB 库
概述
Premium PLC 的 TCP 通讯 DFB 库用于通过在远程应用程序启动时建立的 TCP/IP 连接,在 PLC
应用程序与远程应用程序之间传输数据块。
远程应用程序在支持 TCP/IP 通讯配置文件的设备上执行。
本章包含了哪些内容?
本章包含了以下主题:
DFB 库简介
TCP_CNX DFB
TCP_SEND DFB
TCP_RECEIVE DFB
主题 页
33003695 12/2018
93
DFB 库
DFB 库简介
概述
通讯 DFB 库包含以下内容:
连接管理 TCP_CNX DFB
用于传输数据块(最大大小为 8 kb)的 TCP_SEND DFB
用于接收数据块(最大大小为 8 kb)的 TCP_RECEIVE DFB
注意: Premium PLC 的 TCP 通讯 DFB 使用来自
连接以及在其连接上发送和接收字节流。
Premium 的 TCP Open 范围的服务来管理 TCP
功能块使用在 Premium 处理器中实现的消息传递服务。因此,所有通讯功能块都可以在多个 PLC
周期上执行。数据报的 CPU/模块交换在每个 PLC 周期上进行。
DFB 维护
功能块的执行可进行显式维护。只要 DFB 的 ACTIVITY 位处于活动状态,就必须对 DFB 的维护进
行编程。
注意: 请勿在同一个 PLC 周期内多次执行同一个 DFB 实例。
DFB 的维护是必需的,因为所有通讯功能块都在多个 PLC 周期上执行。只要调用 DFB,并且其
ACTIVITY 位等于 1,就会针对每个 PLC 周期重新启动 DFB。
94
33003695 12/2018
TCP_CNX DFB
概述
TCP_CNX DFB 管理与远程客户端的连接以及这些连接的操作模式。TCP_SEND 或
TCP_RECEIVE DFB 通过管理字的状态向 TCP_CNX DFB 通知连接中断。对于
TSX ETY 110 WS/5103 模块,只存在一个 TCP_CNX DFB 实例。
DFB 库
输入参数
参数
RST
类型
位
说明
将此输入设置为 1:
中断正在进行的交换
关闭所有连接
输入/输出参数
参数
MANAGNT
类型
字表
说明
所有 DBF 共用的管理表
33003695 12/2018
95
DFB 库
输出参数
参数
ERROR
类型
位
说明
如果未正确执行交换,则此输出位设置为 1。
状态字指示已发生的错误类型。
内部公共数据
参数
DEVICE
PORT
类型
字
字表
IPACCEPT 双字
EOM
IPCNXi
ACTIVITY
STATUS
字节
写入/读取变量 说明
写 模块编号。
TSX ETY 110 ES/5103 模块在机架中所处的物理插槽的编号。
写
写
本地端口号 No. i 。
要侦听的 16 个本地服务端口的表(有符号值 ≥ 5010)。
值 0 指示无效值。
远程机器 No. i 的 IP 地址。
来自表 8 的字 4 字节 IP 地址表。获得授权连接到 PLC 的远程机器。
值 9 指示无效值。
写 消息结束 字符。
此参数定义要在消息交换中使用的 消息结束 字符的存在及值:
EOM = 0:无 消息结束 字符
从 0x01 至 0xFF 的 EOM: 消息结束 字符的值:
由模块在传输过程中添加
由模块在接收过程中检查并删除
字符串 读
位
字
读
读
远程机器 No. i
的 IP 地址。
仅用于维护的只读字符串。以格式 aaa.bbb.ccc.ddd
指示连接到配置
中索引为 i
的端口的远程机器的 IP 地址。值
0.0.0.0
指示没有机器连
接到此端口。
当 DFB 正在执行且需要维护时,此输出位为 1。在进行热重启或冷重
启或是 DFB RESET 时,此位设置为 0。
仅当 ERROR 输出位设置为 1 时,此字才有意义。此字指示在交换过
程中发生的错误的代码。
(每个设置为 1 的字位都指示一个错误。)
96
33003695 12/2018
DFB 库
操作
TCP_CNX DFB 必须在每个 PLC 周期进行调用,以确保 TCP 端口得到永久管理。
如果 RST 和 ACTIVITY 位设置为 0,则会开始侦听已配置的端口。然后, ACTIVITY 位会保持为 1,
直至应用程序允许 RST 位还原为 0。
如果与模块的通讯不正确,则输出 ERROR 位会设置为 1。
在任何时候,将 RST 位(优先级输入)设置为 1 都会使正在进行或备用的所有连接中断。
ACTIVITY 位(已完成的交换)会设置为 0,而 ERROR 位会设置为 1。状态字 <TCP_CNX instance name>.STATUS
指示错误的类型。
在进行冷重启或热重启时,TCP_CNX DFB 会自动返回到针对已配置端口的侦听模式。
33003695 12/2018
97
DFB 库
TCP_SEND DFB
概述
TCP_SEND DFB 使数据消息可以通过 TCP/IP 连接发送到远程客户端应用程序。消息的最大大小
为 8 kb。
输入参数
参数
RST
BUF
输入/输出参数
参数
MANAGNT
类型
位
字表
说明
将此位设置为 1:
中断正在进行的交换(如果 ACTIVITY 位设置为 1)
关闭连接
将
ACTIVITY
信息位设置为 0 并将
ERROR
输出位设置为 1
错误代码位于
STATUS
字中。
此变量定义缓冲区头 %MWi 个字的地址,以便发送消息。
类型
字表
说明
所有 DFB 共用的管理表
98
33003695 12/2018
DFB 库
输出参数
参数
ERROR
类型
位
说明
如果未正确执行交换,则此输出位设置为 1。
STATUS 字指示已发生的错误类型。
内部公共数据
参数
DEST
PORT
SIZE
ACTIVITY 位
INHIB 位
类型 写入/读取变量 说明
双字 写 此变量定义客户端在其上连接到本地端口的远程机器的 IP 地址。
缺省情况下, DEST = 0。消息仅发送到与 PLC 的本地服务端口连接的远
程客户端工作站。
字
字
写
写
此变量定义远程客户端连接到的本地端口号。
此变量定义要发送的消息的大小(0 至 8192 字节)。
读
读
当交换正在进行时,此位设置为 1。当交换完成时,此位设置为 0。
此位使得可以抑制错误警告。 ERROR 输出位和 STATUS 字保持为 0
(不会中断功能块的执行)。
STATUS 字 读 仅当 ERROR 输出位设置为 1 时,此字才有意义。此字指示在交换过程中
发生的错误代码(每个设置为 1 的字位都指示一个错误)。
操作
如果 RST 和 ACTIVITY 位设置为 0,则会在调用 TCP_SEND DFB 时触发数据传输。在交换过程中,
ACTIVITY 位设置为 1。在传输结束时, ACTIVITY 位设置为 0。此外,如果交换不正确,则 ERROR
输出位设置为 1。
在任何时候,将 RST 位(优先级输入)设置为 1 可允许中断正在进行的交换。 ACTIVITY 位(已完
成的交换)会设置为 0,而 ERROR 位会设置为 1。状态字 <TCP_SEND instance name>.STATUS
指示
错误的类型。如果连接已打开,则此时会关闭,且模块会等待传入的连接。TCP_CNX DFB (参见
第
页) 可重新建立到 TCP 服务端口的连接,以开始再次发送消息。
在发送消息时,会发生以下过程:
检查输入参数(远程机器的 IP 地址和本地端口号)
搜索远程客户端所请求的已打开连接
按 240 字节的数据块发送消息(如果请求了该选项,则会添加 消息结束 字符)
33003695 12/2018
99
DFB 库
TCP_RECEIVE DFB
概述
TCP_RECEIVE DFB 使得可以通过 TCP/IP 连接从远程客户端应用程序接收数据消息。消息的最
大大小为 8 kb。
输入参数
参数
RST
输入/输出参数
参数
BUF
MANAGNT
100
类型
字表
字表
类型
位
说明
将此位设置为 1:
中断正在进行的交换(如果 ACTIVITY 位设置为 1)
关闭连接
将
ACTIVITY
位设置为 0 并将
ERROR
输出位设置为 1
错误代码位于
STATUS
字中。
说明
此输入和输出参数定义缓冲区头 %MWi 个字的地址,
以便接收消息。
所有 DFB 共用的管理表
33003695 12/2018
DFB 库
输出参数
参数
ERROR
类型
位
说明
如果未正确执行交换,则此输出位设置为 1。
STATUS 字指示已发生的错误类型。
内部公共数据
参数
FRM
PORT
SIZE
ACTIVITY
INHIB
STATUS
LENGTH
类型
双字
位
字
字
字
位
字
写入/读取变量 说明
写 此变量定义客户端在其上进行连接的远程机器的 IP 地址。
缺省情况下, FRM = 0,DFB 等待由连接到 PLC 本地服务端
口的唯一远程客户端发送的消息。
写
写
读
此变量定义远程客户端连接到的本地端口号。
此变量定义要发送的消息的大小(0 至 8192 字节)。
写
此变量在完成交换后由 DFB 设置为 0。如果 ERROR 输出位
设置为 0,则 ACTIVITY 位指示已成功接收了消息。但是,
如果 ERROR 位设置为 1,则 ACTIVITY 位指示交换已结束,
但是发生错误。
此变量使得可以抑制错误警告。 ERROR 输出位和 STATUS
字保持为 0(不会中断功能块的执行)。
读
读
仅当 ERROR 输出位设置为 1 时,此字才有意义。此字指示
在交换过程中发生的错误代码(每个设置为 1 的字位都指
示一个错误)。
如果 ERROR 输出位设置为 0,则此变量包含接收的字节数。
操作
如果 RST 和 ACTIVITY 位设置为 0,则会在调用 TCP_RECEIVE DFB 时触发数据传输。在交换过程
中, ACTIVITY 位设置为 1。在传输结束时, ACTIVITY 位设置为 0。此外,如果交换不正确,则
ERROR 输出位设置为 1。
在任何时候,将 RST 位(优先级输入)设置为 1 可允许中断正在进行的交换。 ACTIVITY 位(已完
成的交换)会设置为 0,而 ERROR 位会设置为 1。状态字 <TCP_RECEIVE instance name>.STATUS
指
示错误的类型。如果连接已打开,则此时会关闭,且模块会等待传入的连接。模块接收缓冲区中
的所有消息都会丢失。
在接收消息时,会发生以下过程:
检查输入参数(远程机器的 IP 地址和本地端口号)
搜索远程客户端所请求的已打开连接
对接收消息的 EF 功能块进行排队,以接收消息
只要给定连接的 DFB 处于活动状态,模块就会等待要接收的消息,并且接收的头两个字节指示消
息的长度。随后便会按 240 字节的帧大小将数据传输到 PLC 的字中。
33003695 12/2018
101
DFB 库
在将整个消息都复制到 PLC 上时:
DFB 会检查字符消息的结尾(如果配置了此选项)。
系统会填充 DFB 的 STATUS 和 LENGTH 参数,并为模块应用程序设置 ACTIVITY 和 ERROR 位。
102
33003695 12/2018
EcoStruxure™ Control Expert
术语
33003695 12/2018
术语
EN
EN 表示 ENable(启用);是可选功能块输入。启用 EN 输入时,则自动设置 ENO 输出。
如果 EN = 0,则不启用功能块;不执行其内部程序且 ENO 设置为 0。
如果 EN = 1,则功能块的内部程序在运行并且 ENO 设置为 1。如果发生错误,则 ENO 设置为 0。
如果 EN 输入未连接,则会自动设置为 1。
ENO
ENO 表示 Error NOtification(错误通知);这是与可选输入 EN 关联的输出。
如果 ENO 设置为 0(因为 EN = 0 或出现执行错误时):
功能块的输出状态保持在上次正确执行的扫描周期中的状态;
功能的输出(多个)及过程都设置为“0”。
INT
INT 是 Single INTeger(单精度整数)(采用 16 位编码)的缩写。
上限/下限如下所示:-(2 的 15 次幂)到(2 的 15 次幂)- 1。
示例:
-32768 、 32767 、 2#1111110001001001 、 16#9FA4 。
33003695 12/2018
103
术语
104
33003695 12/2018
EcoStruxure™ Control Expert
索引
33003695 12/2018
索引
DFB,
FCT_ACCEPT,
FCT_CLOSE,
,
,
FCT_CLOSE,
TCP Open - 指令
FCT_ACCEPT,
,
FCT_CONNECT,
FCT_SELECT,
FCT_SEND,
FCT_SHUTDOWN,
一般信息,
,
TCP_RECEIVE,
指令
可用性,
指令的可用性,
,
,
,
33003695 12/2018
105
索引
106
33003695 12/2018
Prenesi
Oglas