事实上,想要在网络上远程通讯一个PLC,因为远端PLC为服务器端,正如我们访问网站一样,首先得有一个目标地址,即,必须先得到PLC所在的IP。
而静态IP极其昂贵,一般的ADSL上网,都是由电信联通移动分配的动态IP。
一般的,PLC都是接入局域网,然后通过路由器接到广域网(互联网)中。
当我们某一时刻,想监控访问远端的PLC的时候,我们必须首先找到PLC所在的局域网(路由器)的公网IP。
因为这个公网IP是动态随机分配的,一重启路由器就会变,最省钱的办法,是叫客户百度“本机IP”,如下图所示:
如果客户不想这么做,可以购买一个动态域名(花生壳),把这个动态域名跟PLC所在的路由器绑定,然后通过互联网DNS服务,也可以得到本机IP,但这个要花钱,而且IP解析存在一定的滞后,有可能会得到的是滞后的错误IP。
上位机端的IP,不需要公网IP,因为上位机是做客户端,由它发起TCP三次握手,他会自动把本机IP地址放到报文中。
得到IP是第一步,然后要做端口映射。一个路由器下面,接了多台设备、多个PLC,通过端口来做区分。
矩形PLC,集成了标准的Modbus tcp 服务器/客户端 协议,而Modbus协议的端口,是502,因此,在路由器里得建立一个表(端口映射):即把含端口502的报文,自动转发到PLC所在的IP地址。