- {{item.name}}
如何编写 PROFINET IO 设备通讯块 FC11 和 FC12
- 0
- 903
- 7162
如果将S7-300的工业以太网CP用作PROFINET IO控制器或PROFINET IO设备,则必须在用户程序中调用通讯功能FC11“PNIO_SEND”和FC12“PNIO_RECV”。
通讯块 FC11 “PNIO_SEND” 和 FC12 “PNIO_RECV” 的特性:
- FC11 和 FC12 是同步通讯块。
- 块被包含在 S7-300 控制器“SIMATIC_NET_CP” 库中。
- 块必须被调用在 OB1 中 (参看文档 ID: 2795485) 。
- 功能调用结束通过 “DONE”, “NDR” 或 “ERROR” 表示。
FC11 “ PNIO_SEND” 通讯功能块的特性 :
- 作为 PROFINET IO 控制器
功能块通过通讯处理器传送指定输出范围内的过程数据 (输出) 到 PROFINET IO 设备并且作为状态显示提供PROFINET IO 设备输出的IO消费者状态(IOCS)。 - 作为 PROFINET IO 设备
功能块读取 PROFINET IO 设备 CPU 的过程映像输入区并且传送它们到 PROFINET IO 控制器 (被组态的输入地址);此外作为状态显示提供 PROFINET IO 控制器输出的IO消费者状态(IOCS)。
FC12“ PNIO_RECV” 通讯功能块的特性 :
- 作为 PROFINET IO 控制器
功能块接收 PROFINET IO 设备(控制器输入)的过程数据(输入) 并且提供来自于 PROFINET IO 设备的指定输入区的IO提供者状态(IOPS)。 - 作为 PROFINET IO 设备
功能块接收 PROFINET IO 控制器发送的数据 (被组态的输出地址) 并把 PROFINET IO 控制器的传送数据的IO提供者状态(IPOS)写到 PROFINET IO 设备已组态好的输出数据区中。
组态描述
STEP 7 项目包含以下被组态成 PROFINET IO 控制器的 S7-300 站:
- CPU 319-3PN/DP
STEP 7 项目中以下模块被组态成 PROFINET IO 设备:
- CPU 315-2DP 和 CP343-1 Lean (6GK7 343-1CX10-0XE0)
- ET 200S
图. 1: 组态
以下输入/输出模块被组态到 PROFINET IO 设备 CP343-1 Lean中:
- 地址是 0-15 的 16 字节输入模块
- 地址是 16-23 的 8 字节输入模块
- 地址是 0-15 的 16 字节输出模块
- 地址是 16-19的 4 字节输出模块
这表明输入地址区和输出地址区分别是 24 字节 (0-23) 和 20 字节 (0-19)。 输入和输出首地址可以不是"0".
图. 2: PROFINET IO 设备 CP343-1 Lean 的输入/输出地址区
接下来的输入/输出模块被组态到 ET 200S 中
- 地址是 20.0-20.1 的 2 位输出模块
图. 3: PROFINET IO 设备 ET 200S 的输入/输出地址区
最终的地址区是:
- 输入: 0-23 = 24 字节
- 输出: 0-20 = 21 字节
PROFINET IO设备的用户程序描述
在此例中, CP343-1 Lean 连接一个S7-300站作为 PROFINET IO 设备被用到一个 PROFINET IO 系统中。字节 MB0 被定义成 S7-300 CPU 时钟位。STEP 7 程序包括 OB1,FB100,DB30,DB31,DB12,FC11 和 FC12。
- OB1
OB1 循环调用。 在OB1中调用FB100 (实例 DB: DB100)。
图. 4: OB1
- FB100
OB1 中调用FB100。 在FB100 中调用 FC11 “PNIO_SEND” 和 FC12 “PNIO_RECV” 。
图. 5: 调用 FC11 "PNIO_SEND"
图. 6: 调用 FC12 "PNIO_RECV"
输入参数 MODE=0, 因为通讯处理器仅被用作 PROFINET IO 设备。如果通讯处理器被同时用作 PROFINET IO 控制器和 PROFINET IO 设备,那么输入参数 MODE=1。
FC11 “ PNIO_SEND” 的输入参数 LEN 是你组态的 CP343-1 Lean (24 字节) 的输入地址区的长度。 这段数据长度被指定为 FC11 “PNIO_SEND” 发送数据的 LEN 参数。这段数据必须与已组态的的输入 (24 字节) 保持一致。
FC12 “ PNIO_RECV” 的输入参数 LEN 是你组态的 CP343-1 Lean (20 字节) 的输出地址区的长度。 这段数据长度被指定为 FC12 “PNIO_RECV” 发送数据的 LEN 参数。这段数据必须与已组态的的输出 (20字节) 保持一致。
在此示例中,以下数据区域用于IO数据:
- 输入地址范围的DB30:在本例中,DB30的长度必须至少为24字节。
- 输出地址范围的DB31:在本例中,DB31的长度必须至少为20字节。
在输入通讯功能参数 CPLADDR 需要指定 PROFINET IO 设备的模块地址。你可从硬件组态中可以得到它,在工业以太网通讯模块 -> “ 地址” 标签中 (参看 图. 6)。在这个例子中, CP343-1 Lean 模块地址是 256dec = 100hex。
图. 7: CP343-1 Lean 的属性对话框-> “ 地址” 标签
FC11 “PNIO_SEND” 和 FC12 “PNIO_RECV” 的输出参数 “DONE”、“NDR”、“ERROR” 和 “STATUS”是通讯功能块的工作标示位。
如果发送任务成功完成,那么 FC11 “PNIO_SEND”的 “DONE”将被置位。
如果接收任务成功完成 (例如:数据被接收到) ,那么 FC12 “PNIO_RECV”的 “NDR”将被置位。
如果 FC11 “PNIO_SEND” 和 FC12 “PNIO_RECV” 由于错误而结束,可通过状态字进行错误分析。
图. 8: 保存 FC11 和 FC12 的状态字
在PROFINET IO设备的用户程序中访问CP 343-1 Lean的IO数据
在本例中,有两个DB块存储IO数据。
DB30对应CP 343-1输入的地址范围。DB31对应CP 343-1 Lean输出的地址范围。在用户程序中,通过加载和传输命令访问数据块区域,以读取和写入IO地址。
- T DB30.DBB0 相当于 T IB0
- L DB31.DBB0 相当于 L QB0
PROFINET IO 控制器的用户程序描述
在这个例子中,一个带有集成以太网接口的 S7-300 CPU 被用作 PROFINET IO 控制器。 字节 MB0 被定义成 S7-300 CPU时钟位。
STEP 7 程序包括 OB1, FB100 和 DB20。
在用户程序中没有必要调用通讯功能块。可以通过装载和传送命令来访问输入/输出区,例如,读出输入值和写值到输出。读到的输入值被保存到数据块 (DB20)中。
注意
包括PROFINET IO控制器中通信块FC11和FC12调用的示例程序,可参考如下条目 ID: 26558253。
STEP 7 项目下载
接下来的 STEP 7 项目包含一个调用了 FC11 和 FC12 的事例程序。这个程序通过 STEP 7 V5.4 SP3 创建。
FC11_und_FC12_DEV.zip ( 296 KB )
用 SIMATIC Manager 解压 “FC11_und_FC12_DEV.zip” 文件通过菜单“File > Dearchive”。 STEP 7 项目解压完所有子文件后,你可以使用SIMATIC Manager打开并编辑 STEP 7 项目。
您可以前往全球资源库查看此文档: https://support.industry.siemens.com/cs/cn/zh/view/31764614
剩余80%未阅读,请登录后下载/查看文档
- 评论
-
分享
扫码分享
- 收藏 收藏
- 点赞 点赞
- 纠错 纠错
- 如何使用通讯功能块FC11和FC12用于PROFINET IO 控制器编程?
- 如何编写通讯块 FB67“TUSEND”,FB68 “TURCV”,FB65“TCON”和 FB66“TDISCON”实现用 CPU 集成的工业以太网接口进行基于 UDP 协议的数据传输?
- 当在 STEP 7的 CPU 中用户程序里调用 FC5/50 和 FC6/60 通讯块时需要记住的要点有哪些?
- 如何使用 SIMATIC NET PC 软件为 SIMATIC NET OPC 服务器配置作为 PROFINET IO 控制器的 PC 站与作为 PROFINET IO 设备的 S7 站建立连接
- 如何对 DP 标准从站/PROFINET IO 设备进行一致性的数据读写?
- PROFINET IO 设备提示版本不一致是什么意思和如何使用网络设备的在线诊断 ?
- 实现F-CPU之间安全相关的控制器-智能设备通信
- F-CPU之间安全相关的控制器-智能设备通信(Portal V11)
- 如何编程通信块 FB63 "TSEND", FB64 "TRCV", FB65 "TCON" 和 FB66 "TDISCON"以实现用S7-300 或 S7-400 CPU的PROFINET口进行基于TCP协议的数据交换?
- 在 STEP 7 V12 SP1 (TIA Portal) 中,怎样设置 IO 设备的 PROFINET 更新时间以及在何处找到所有 PROFINET 节点更新时间的概览?
{{item.nickName}}