在做工业互联网项目时,遇到的最多的设备就是各个厂家的PLC了。PLC露脸的概率比运动控制器、变频器、机器人、数控系统的概率大多了。
那我们如何来采集PLC的数据呢?
下面是我整理的采集PLC数据的25种姿势:
- PLC -> 组态软件 -> OPC客户端/Modbus客户端
- PLC直连PLC协议转换器
- Kepware加嵌入式工控机,上面跑iot平台的agent。
- Matlab OPC工具箱
- Labview OPC
- Pyopc加paho加mqtt broker
- Postgresql SPI通过plc协议读PLC串口,将采集到的数据直接往数据库表里写
- Nodejs串口plc协议解析加mqtt
- aws sitewise opc ua
- PLC自带Modbus协议支持,pymodbus加paho。
- 最省硬件成本和流量的方案: WiFi芯片里跑协议解析和数据发送云平台。
- 串口plc串口转以太网,tcp透传到公网服务器,ie浏览器里嵌入socket控件,用iis asp页面发送数据给服务器,然后返回。
- dtu透传串口或网口到公网服务器,公网服务器跑plc采集数据程序。
- PLC协议转换软件运行在嵌入式linux上,如kura bosch iot
- 单片机,上面放两块芯片,一块通过网口或串口采集plc数据,一块主控。
- stm32单片机上跑micropython,用串口自己实现plc协议解析
- 安卓手机接usb转串口线,接plc,再把数据通过aws IoT android sdk 发到云端http接口。接口收到后用微信python库发送数据到微信群里。
- 给某水果公司代工的工厂,用mac mini当工控机,用objective-c写plc数据采集驱动采集数据,通过vpn发送到苹果公司总部。让苹果公司总部实时掌握每天产量质量。
- pyopc或pyserial采集数据,然后用zeromq或amqp协议发送到云端。
- nodejs模块,然后用JS 通过 MQTT over websocket来发送数据到云端。前端界面开发人员分分钟变身物联网全栈开发人员。
- 不写代码,用node-red拖。类似的是litmus
- 给工控人员用要简单易用,用c#开发agent,内置vbscript或lua脚本,提供几个函数,串口打开关闭,mqtt连接发布订阅。当然也可以java加jython。
- 要是连懒得拖node-red,外包给thingworx或ignition的二次开发商。跟工厂用metasys二次开发商监控一回事。
- 有钱像高铁或公安网建专网,或者像水果公司建vpn,plc就变成局域网设备,又安全又方便。没钱,就透传或中继。
- Wolfram的OPCClassic 这是个Modelica库,可以让仿真模型通过OPC标准连接到OPC服务器,从而连到PLC设备。