欢迎来到飞鸟慕鱼博客,开始您的技术之旅!
当前位置: 首页知识笔记正文

plc主从站之间的访问,软plc系统

终极管理员 知识笔记 84阅读
CoDeSys系列-3、Windows运行时软PLC主站和p-net从站IO设备组网测试

文章目录 CoDeSys系列-3、Windows运行时软PLC主站和p-net从站IO设备组网测试一、前言二、Windows运行时软plc配置编程1、安装Windows下的运行时扩展包非必要2、创建项目2.1、创建标准工程2.2、添加RTE设备或非RTE设备2.3、激活设备2.4、回声测试2.5、安装p-net类型Profinet设备2.6、配置添加Profinet主站网络 3、PLC编程4、烧录程序并测试 三、注意事项

一、前言

前面CODESY下载安装并熟悉了p-net搭建从站也已经跑在虚拟机树莓派上了我们只需要快速搭建一个profinet主站来和从站进行交互即可这里我们直接用Windows下带的软PLC搭建profinet主站并和p-net的demo从站程序进行IO交互。
评估是否进行Windows下的运行时PLC前先看一下注意事项Windows下安装配置会需要修改boot及防火墙等可能会影响Windows电脑的正常使用所以创建项目时的设备可以选择非RTE的。

二、Windows运行时软plc配置编程 1、安装Windows下的运行时扩展包非必要

下载安装Windows运行时

导入下载好的运行时安装包

然后按照提示安装对应扩展包即可。
之后安装CODESYS Control RTE并重启电脑之后启动对应的RTE的PLC即可

打开防火墙否则网关搜不到

管理员权限安装不要安装到C盘

2、创建项目 2.1、创建标准工程

标准工程RTE设备运行时环境控制设备主站控制器

或者选择非RTE的控制器设备

2.2、添加RTE设备或非RTE设备

添加设备只有安装了对应的RTE扩展包才能找到添加如下对应类型的设备

非RTE设备搜索添加

2.3、激活设备

如下以非RTE设备为例
设备激活成功需要输入Windows的用户名密码

2.4、回声测试

发送回声服务

2.5、安装p-net类型Profinet设备

下载对应GSDML文件github.com/rtlabs-com/p-net/blob/master/samples/pn_dev/GSDML-V2.4-RT-Labs-P-Net-Sample-App-20220324.xml
安装GSDML文件


安装成功

2.6、配置添加Profinet主站网络

● 在左侧面板的 DeviceCODESYS Ccontrol RTE V3 x64上右键单击并选择添加设备。使用 以太网适配器、 以太网。

● 在 以太网上右键单击并选择 添加设备。使用 Profinet IO主站、 PN-控制器。

● 在 PN_Controller上右键单击并选择 添加设备。使用 P-Net 示例应用程序。

● 在 P_Net_Sample_App上右键单击并选择 添加设备。使用 DIO 8xLogicLevel。

● 双击 左侧菜单中的以太网节点。选择接口“eth0”。IP 地址将相应更新。

● 双击 左侧菜单中的PN_controller节点。使用“第一个 IP” 和 “最后一个 IP”调整 IP 范围 使其都具有 IO 设备的现有 IP 地址例如运行 example_app 的 Linux 笔记本电脑或嵌入式 Linux 板。在本教程中我们使用 First IP 172.16.1.174 和 Last IP 172.16.1.174。

● 双击 左侧菜单中的P_Net_Sample_App节点。将 IP 地址设置为 IO 设备的现有地址。在本教程中我们使用 172.16.1.174.

3、PLC编程

● 单击左侧面板中的 PLC 逻辑 ‣ Applicaiton ‣ PLC_PRG并输入程序。
在控制器应用程序中根据教程使用ST语言编程变量部分和程序部分的代码都给了这里我们添加进去即可

PROGRAM PLC_PRGVAR    in_pin_button_LED: BOOL;    out_pin_LED: BOOL;    in_pin_button_LED_previous: BOOL;    flashing: BOOL : TRUE;    oscillator_state: BOOL : FALSE;    oscillator_cycles: UINT : 0;END_VAR
oscillator_cycles : oscillator_cycles  1;IF oscillator_cycles > 200 THEN oscillator_cycles : 0;oscillator_state : NOT oscillator_state;END_IF IF in_pin_button_LED  TRUE THEN IF in_pin_button_LED_previous  FALSE THEN flashing : NOT flashing;END_IF out_pin_LED : TRUE;ELSIF flashing  TRUE THEN out_pin_LED : oscillator_state;ELSE out_pin_LED : FALSE;END_IF in_pin_button_LED_previous : in_pin_button_LED;

● 在左侧菜单中的 DIO_8xLogicLevel节点上 右键单击并选择“编辑 IO 映射”。

● 单击小 号打开 “Input 8 bits”行 。

● 双击您想要编辑的行上的图标。
● 将“Input Bit 7”映射到“in_pin_button_LED”通过Application/PLC_PRG找到将“Output Bit 7”映射到“out_pin_LED”。
或者双击在这里编辑也可以

● 在 Application ‣ MainTask 中选择 Cyclic with 4 ms。

● 在 Application ‣ Profinet_CommunicationTask 中选择 10 ms 的循环。使用优先级 14。

4、烧录程序并测试

● 在顶部菜单中使用 Build ‣ 生成代码。

● 使用顶部菜单 Online ‣ Login 将应用程序传输到 Raspberry Pi。 在弹出窗口中按 “是” 。Windows下的PLC不需要Ubuntu和树莓派的都需要ssh去登录设备这个后面的实例我么会再按照流程执行
● 在顶部菜单中使用 Debug ‣ Start 您可以使用顶部菜单 Tools ‣ “Update Raspberry Pi”来跟踪控制器日志。单击 “系统信息” 按钮然后查看 “运行时信息” 文本框。如果在网络上找不到 IO 设备它将显示错误消息。使用 Wireshark 验证控制器是否每 5 秒发送一次LLDP 数据包。每 15 秒它会发送一个 ARP 数据包来询问第一个IO 设备 IP 地址并发送一个 PN-DCP 数据包来询问名为“rt-labs-dev”的 IO 设备。
实际我这里需要登录->运行

wireshark抓包参考这里

可以看到我这里是没有找到对应的IO设备这里不去具体分析原因了我们后面会再去深究这里期待一下吧。
● 配置完在 Raspberry Pi 上运行的 Codesys softplc 后您可以关闭用于配置它的个人计算机运行 Codesys 桌面应用程序。请记住您需要每两个小时重新启动运行 Softplc 的 Raspberry Pi如果使用试用版。
Codesys 故障排除 —————- ——- 如果您收到错误声称缺少库请单击左侧面板中的 PLC 逻辑 ‣ 应用程序 ‣ 库管理。Codesys 应该自动检测是否有任何缺失的库。单击 “库管理器”选项卡 下的 “下载缺少的库” 以下载任何缺少的库。这里也是上一节提到的第一次运行会缺少库需要挂tz下载解决

三、注意事项

由于CODESYS Control RTE V3会配置boot以及防火墙如果安装过程中不同意配置boot的话会导致搜不到RTE设备所以会影响正常的Windows使用所以这里我们使用非RTE的CODESYS Control创建软PLC作为主站虽然由于没有达到实时性导致IO通信超时这个在日志上到时候会具体再分析查看但是基础的profinet交互过程可以做大致的查看分析了。

标签:
声明:无特别说明,转载请标明本文来源!