罗里吧嗦:
本人之前一直从事的电控工作 就是搞PLC 触摸屏 变频器这些,后台由于换工作接触到了工业物联 ,就是现在很火热的现场设备采集,后来自学了C#,做了一些开发上位机的工作,后来又接触到了树莓派,由于公司业务需要,需要采集现场设备的信息,自己尝试着使用.NET Core 在树莓派上运行C#代码进行设备采集,由于树莓派简单易学,不需要特别复杂的嵌入式知识就能实现采集所以选择使用树莓派+.NET Core 进行采集(自己学习 调试) ,如果使用在工业现场大家还是需要使用能适应工业环境的开发板,或者自己开发,此次的教程,重在思路和编码上,最好能起到抛砖引玉的作用,教程是本人工作之余抽时间写的所以有时候可能更新不是很及时所以还望大家见谅,再有文章中只是Demo ,重点在实现功能,有不严谨的地方还请口下留情。
现在已经完成了在树莓派上采集多种CNC系统机床的采集、Fanuc(发那科) Mitsubishi(三菱) HAAS(哈斯)HEIDENHAIN(海德汉)Brother(兄弟机) siemens(西门子) 等系统的采集,为了方便交流 欢迎大家进群(QQ:901388775),此次教程中所用到的软件都在群文件内,大家可以自取。
第一个阶段我们先完成Modbus 在树莓派端的采集,大概流程是: 树莓派 +西门子PLC 200 +WinForm/WPF ,树莓派端进行PLC 的采集 并提供WebAPI 给外部访问,然后使用WinForm 或者WPF 访问树莓派WebAPI 获取PLC 的数据。
本地测试
?
第一步:
创建两个串口COM3 COM4
?
设置从站 端口 和串口参数 9600 8 N 1
?
Modbus 调试助手设置
?
两个软件都点击连接以后
?
?
写入测试
使用串口助手 写入 数值123
从站 相应地址会显示291 原因是 串口使用的是16进制进行写入的 使用WIN10自带的计算器可以看出 16进制的123 就是291 说明 通信没有问题
?
进行读取测试 在从站中设置 地址1 的数值是 123 使用串口助手读取 也是123
?
下面我们编写代码进行测试 因为是测试所以代码没有进行防呆 不是很严谨大家见谅
创建控制台项目
?
我们使用NModbus4 开源库进行测试
使用NuGet 下载包
?
编写测试代码
读取寄存器的值
置为输出线圈
?
?
我们现在查看从站里面的值
?
可以看到写入和读取都没有问题
好了 这个小入门demo 就写到这里 ,上面的软件大家如果需要可以去QQ群里下载,谢谢大家!一起交流一起进步!
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!