年前碰到了一个需求, 需要针对倍福PLC进行数据采集, 搞定了PLC通讯协议后, 最大的问题出现了, 我们不知道PLC的密码, 没办法进入到PLC查询到点位, 而且也没办法对PLC设置路由, 导致没有办法连上PLC, 似乎在这种情况下, 采集成为了不可能的事情。
但是倍福PLC采用的是网口通讯, 所有的数据都是走的网络协议, 这时候可以考虑使用wireshark进行抓包分析, 然后就可以获取到点位。
最大的问题是如何可以进行数据采集, 此处我们借用了wireshark的内部工具tshark, 通过tshark对网口进行抓包, 当然前提是在网口转发建立的前提下, 也就是两个网口互相收发, 保障PLC和HMI的正常通讯, 然后通过tshark对其中一个网口进行抓包, 获取请求包中的地址, 然后从响应包中解析出相应的值, 之后再组包上传数据, 即可完成整个数采过程。
图示如下: