背景
经过上两次的介绍我们已经可以在树莓派上跑C#代码了,这次我我们再树莓派上创建一个RestfulWebAPI 再内部实现对于 西门子(Siemens)PLC200的读取写入。
硬件
- 树莓派 3B+
- USB 转485模块
- Siemens PLC 200
- 导线两根
进行连接
没有硬件的可以使用软件进行环境的模拟 相关软件可以在QQ群内进行下载:QQ群:901388775 欢迎大家进群交流
树莓派 使用USB 转485 模块 和西门子PLC 进行连接
创建工程
创建WebAPI 工程过程不再赘述,下面只是介绍关键部分
创建ModbusRTU接口
集成并实现
Startup 中注册
控制器:
这里用到的只有一个Action 所有的 查询和写入都使用 ReadOrWriteRegishold 具体读写区分使用 Post request 进行区分
PLC 设置:主要进行Modbus 参数设置
将程序发布并复制到树莓派中进行启动运行:
使用PostMan 进行测试
写入操作
读取操作
postman 进行读写完全没有问题
当然我们也可以使用WinForm 来调用Webapi 进行PLC 的控制
我们来读取刚才postman 写入的值 也是完全正确的
置位一下输出点
当前状态:
执行一次写入操作 可看到 输出点已经输出为ON 了
总结
这个小Demo 完成了 远程对于PLC 的操作 包括 读取 写入,这里值得注意的一点是 Siemens PLC 200 在进行Modbus 通信的时候 不能使用一次写入多个输出点 只能一个是操作,树莓派本身有很好的扩展性,自带WIFI ,也可以加装4G 模块,对于没有网口的PLC 或者仪表使用树莓派进行通信完全实现了设备的联网操作,这个示例还封装了 通信部分,开发人员只需要操作API 即可 ,不需要关系通信部分,对于软件开发人员比较友好,PLC 可以通过树莓派进行联网采集通信,数控设备CNC 是否也可以呢?欢迎进群讨论 QQ群:901388775 ,再次提醒,这个只是例子,工业环境比较恶劣 还是需要安全可靠的硬件。
本文地址:https://blog.csdn.net/s64906549/article/details/110197943