西门子NCU571.4
6FC5357-0BB14-0AA0SINUMERIK 840D/DE NCU 571.4,400MHz,64MB 不带系统软件 存储器:NC 0.5MB,PLC 96KB PROFIBUS-DP 准备
描述
可以通过CPU 集成的 PROFINET 接口或 CP443-1 Advanced 使用工业以太网 "开放用户通信方式" 进行数据交换, 例如: 这种方式支持下列通信协议:
TCP
ISO-on-TCP
UDP
使用 ISO-on-TCP 协议的工业以太网 "开放用户通信方式" 可以使用下列通信块:
FB65 "TCON" 用于建立连接
FB66 "TDISCON" 用于断开连接
FB63 "TSEND" 用于发送数据
FB64 "TRECV" 用于接收数据
这些通信功能块可以在函数库 Standard Library -> Communication Blocks 中找到。
在标准程序库中将上述通信功能块的版本拷贝至用户程序中,然后编写程序时调用。
用于建立 ISO-on-TCP 连接的连接参数存储于一个数据结构体中。在这次例子中,使用数据结构 "OUCW_1",在这个例子中数据结构保存在 DB1 数据块中,并由用户进行参数化。
注意
ISO-on-TCP 通信连接不在 NetPro 中配置。
表 01 提供了数据结构 "OUCW_1" 中哪些连接数据被保存。
字节 | 参数 | 数据类型 | 描述 |
0 to 1 | block_length | WORD | 数据结构 "OUCW_1" 的长度 |
2 to 3 | id | BYTE | 对连接的引用 数值范围:W#16#0001 to W#16#0FFF 必须为该连接块的 ID 指定一个参数值。 |
4 | connection_type | BYTE | ISO-on-TCP 协议版本:B#16#12 |
5 | active_est | BOOLEAN | 建立连接方式的标识号
|
6 | local_device_id | BYTE | 通过 CPU 315-2 PN/DP 集成的 PROFINET 接口进行通信:B#16#02 |
7 | local_tsap_id_len | BYTE | 所使用的参数 local_tsap_id 的长度 如果连接类型为 B#16#12,可能的值:2 to 16 |
8 | rem_subnet_id_len | BYTE | 该参数当前未使用。必须将 B#16#00分配给它。 |
9 | rem_staddr_len | BYTE | 远程连接终端的地址长度:
|
10 | rem_tsap_id_len | BYTE | 所使用的 rem_tsap_id 参数的长度 如果连接类型为 B#16#12,可能的值:0 or 2 to 16
|
11 | next_staddr_len | BYTE | 所使用的参数 next_staddr 的长度 |
12 to 27 | local_tsap_id | ARRAY [1..16] of BYTE | 本地 TSAP,例如 ISO1: local_tsap_id[1] = B#16#49 local_tsap_id[2] = B#16#53 local_tsap_id[3] = B#16#4F local_tsap_id[4] = B#16#31 local_tsap_id[5-16] = B#16#00 注意 |
28 to 33 | rem_subnet_id | ARRAY [1..6] of BYTE | 该参数当前未使用。必须将 B#16#00 分配给它。 |
34 to 39 | rem_staddr | ARRAY [1..6] of BYTE | 远程连接端点的 IP 地址,例如 192.168.0.30: rem_staddr[1] = B#16#C0 rem_staddr[2] = B#16#A8 rem_staddr[3] = B#16#00 rem_staddr[4] = B#16#1E rem_staddr[5-6] = B#00 (保留) |
40 to 55 | rem_tsap_id | ARRAY [1..16] of BYTE | 远程连接端点的 TSAP,例如 ISO1: rem_tsap_id[1] = B#16#49 rem_tsap_id[2] = B#16#53 rem_tsap_id[3] = B#16#4F rem_tsap_id[4] = B#16#31 rem_tsap_id[5-16] = B#16#00 注意 |
56 to 61 | next_staddr | ARRAY [1..6] of BYTE | next_staddr[1-6] = B#16#00 注意 |
62-63 | spare | WORD | 保留,分配 W#16#0000 给该参数。 |
表 01
以下 CPU 支持 ASCII 格式的 TASP。
CPU 314C-2 PN/DP
CPU 315(F)-2 PN/DP, CPU 317(F)-2 PN/DP V3.1 及以上
CPU 315T-3 PN/DP, CPU 317T-3 PN/DP, CPU 317TF-3 PN/DP
CPU 319(F)-3 PN/DP
CPU 414-3 PN/DP, CPU 416(F)-3 PN/DP V5.2 及以上
CPU 414F-3 PN/DP, CPU 412-2 PN
CPU 412-5H PN/DP, CPU 414-5H PN/DP, CPU 416-5H PN/DP, CPU 417-5H PN/DP
IM 151(F)-8 PN/DP CPU V2.7 及以上
IM 154(F)-8 CPU V3.2 及以上
简单例程描述
S7 程序中包含 FB65 "TCON 的调用和带有 "OUCW_1" 数据结构的 DB1,其中 "OUCW_1" 保存着创建 ISO-on-TCP 连接的参数。S7 程序中还包含函数库 Standard Library -> Communication Blocks 中函数 FB63 "TSEND" 和 FB64 "TRCV" 的调用 。通过调用 FB63 "TSEND" 块,可以将数据发送给一个 S7 站或一个 S5 站或一个 PC 站或第三方系统。通过调用 FB64 "TRCV" 块,可以接收从一个 S7 站或一个 S5 站或一个 PC 站或第三方系统发送的数据。
首先在 S7-300 站中创建硬件配置,将 MB100 作为时钟脉冲。发送请求由时钟脉冲触发。存盘编译并将硬件配置到 CPU 中。
STEP 7 程序包含程序块 OB100, OB1, FB400, DB400, FB420, UDT65 和 FB63, FB64, FB65 及 FB66。
OB100
OB100是一个重启 OB,当 CPU 重新启动时执行 (暖起动)。 在这个 OB 块中,次的通信可以通过 M0.3 触发。
OB1
OB1是循环执行。FB1 在 OB1 中调用,其背景数据块是 DB11,且使用 M0.3 作为 INIT_COM 参数,使用M10.0 作为 ABORT 参数。FB1 被调用后,M0.3 在OB1 中被复位。
图 01
FB1
FB1 在 OB1 中循环调用。下述功能块在 FB1 中被调用。
FB65 "TCON"
FB63 "TSEND"
FB64 "TRCV"
FB66 "TDISCON"
定义连接数目
用户可以单独修改连接数目,根据配置在 FB1 的网络段 2 中修改连接数目。连接数目保存在一个静态变量中,如背景数据块 DB11 中。本示例定义的连接数为 "1"。
图 02
建立连接
通过 FB65 "TCON" 的 "REQ" 输入参数的上升沿来开始建立一个连接。带有连接参数的数据结构 "OUCW_1" 被整合到数据块 DB1 中。
一旦FB65 "TCON" 的输入参数 "CONNECT" 使能,包含连接参数的存储区即被指定。
在系统启动后连接被建立。除非调用 FB66 "TDISCON",或者 CPU 进入 STOP 模式,或者切断电源,该连接才会断开。
西门子NCU571.4图 03
发送请求可通过一个上升沿触发 FB63 "TSEND" 的输入参数 "REQ" 来完成。发送请求由时钟位 M10.6 和变量 "SEND_BUSY" 控制。如果发送请求开始执行,那么 "SEND_BUSY" 就被置位。这时无法触发一个新的发送请求。
用户在输入参数 "DATA" 指定发送数据的存储区。
用户在输入参数 "LEN" 指定发送字节长度。
本示例中,发送数据存放在 DB100 中,将100 个字节数据发送给伙伴。
输出参数 "DONE","ERROR" 和 "STATUS" 用来评估工作状态。
图 04
如果发送任务成功完成,"SEND_BUSY" 被置位。一个新的发送任务此时可以被触发。
如果发送任务完成并带有错误,那么 "SEND_BUSY" 同样会被复位,同时 FB63 的 "STATUS" 输出参数会保存一个用来进行错误分析的数值。
图 05
Fig. 06
ISO-on-TCP 连接建立后,就可以接收数据。
用输入参数 "DATA" 和 "LEN" 来指定要保存接收数据的数据区的地址和长度。
本示例中,接收 100 字节的数据并保存在 DB200 中。
Fig. 07
输出参数 "NDR" 用于表示新数据已经被接收。输出参数 "RECV_LEN" 表示被接收数据的长度。
如果数据被成功接收,那么输出参数 "RECV_LEN" 的值被保存。
Fig. 08
如果数据接收没有成功,那么输出参数 "STATUS" 的值被保存并用来评估。
Fig. 09
用户可以使用 FB66 "TDISCON" 断开 ISO-on-TCP 连接。可以使用 FB66 "TDISCON" 输入参数 "REQ" 的上升沿来启动断开 ISO-on-TCP 连接的请求。
Fig. 10
说明
下面步骤解释如何将 S7-400 CPU 配置为 DP 从站连接到外部的 DP 主站或其他项目中 DP 的主站。
在S7-400 CPU项目中组态(DP 从站)
组态硬件
将S7-400 CPU的DP接口设置为DP从站
图.1
3. 组态DP从站的输入/输出条目
图. 2
4. 将 从站设置为DP主站和相同的波特率和总线行规。
注意
总线行规“DP”适用于大多数的 DP 总线配置。对某些总线布局,需要特殊的参数。在这些情况下,可以使用“标准”或“用户自定义”总线行规。
图. 3
5. 将配置到 S7-400 CPU
DP主站项目中组态Configuration in the project of the DP master
在 DP 主站的编程工具中配置 DP 从站,可以在“PROFIBUS DP > Other field devices > PLC > SIMATIC”下的 HW 目录找到作为 DP 从站的 S7-400。
确认在“S7-400 DP slave”中有 3 个空模块可用。如果有必要,插入 3 个空模块。.
图. 4配置模块,注意模块的正确顺序。
图. 5
下表显示主站和从站的输入输出接口如何匹配。
DP 主站 | DP S从站 | ||||
---|---|---|---|---|---|
类型 | 长度 | 一致性 | 类型 | 长度 | 一致性 |
输出 | 7 words | Total length | 输入 | 7 words | Total length |
输出 | 10 words | Unit | 输入 | 10 words | Unit |
输入 | 2 words | Total length | 输出 | 2 words | Total length |
输入 | 4 words | Unit | 输出 | 4 words | Unit |
西门子NCU571.4