| 作者 | 主题 |
|---|---|
|
无心打扰 侠圣
经验值:2279 发帖数:359 精华帖:5 |
楼主
主题:使用花生棒在外网通过ModbusTCP连接内网S7-1200PLC详细步骤
一直想测试一下在外网中除了端口映射之外还有什么办法可以访问PLC,进行数据采集,因为端口映射有他的局限性,比如,我们在一个大的内网中,能够受控的路由器只有PLC系统的,如果要到上一级路由器做映射,可能完成不了。 首先,要通过一个可以上网的路由器把PLC和花生棒连接在一起, 绿色线是到PLC的, 上面的灰色线到花生棒, 接入网络工作正常的花生棒状态为绿色,如下图所示: 接入网络的PLC PLC的IP地址设置如下: 在PLC内部编写ModbusTCP服务器程序,在缓冲区中的寄存器每秒自增加1,如果>150则归-10。 进入花生棒设置程序,设置自定义端口映射如下图 确认后,得到一个公网地址和端口号 拿到这个外网访问地址就可以进行上位机程序编写了,我采用的VS的C#来完成上位机测试程序的,程序代码如下: 为了显示几个温度,使用了MeasureMentstudio的温度显示控件。程序运行状态如下: 连接很顺利,一运行就连接上了。 觉得有点不可思议,太快了,那好吧,用wireshark监控一下,看看是什么数据,先Ping了一下地址,获取了一个真实的IP地址121.41.31.147, 启动Wireshark,得到刷屏的数据,看不懂啊,还是要加个过滤器 我们要的只有上面所述IP的数据,所以添加规则IP.des==121.41.31.147 可以看到数据了,截图了一张问询的数据和一个回复的数据,如下图 嗯, 就这样,结束,测试通过 问题: 在运行过程中ModbusTCP客户端出现过中断的情况,考虑到花生棒采用的是免费版的,网络状态不是很好,应该不存在其他问题。
我是个愚笨的人……
|