之前在博客中有写过关于Socket的几篇文章,所以今天就借此机会简单介绍一下之前的一些项目经验,即如何通过基于TCP协议的Socket网络编程实现与车间设备进行网络通讯。随着大家对工业4.0的憧憬,现在越来越多的制造型企业开始使用MES系统,MES系统除了一些后台的基本功能,如设备管理、生产管理、报表、品质管理以及生产排程等,还有一个重要的环节,就是对车间的硬件设备进行控制。控制的方式多种多样,比如组态或者是设备厂商提供的SDK。在这里我介绍一种通过Socket实现与设备间的通讯。
通过Socket和设备进行通讯的前提是,这个目标设备也要支持TCP协议。由于设备多种多样,厂商提供的连接方式也五花八门。比如,大家都知道Socket通讯主要包括服务端和客户端两部分,所以厂商的设备有可能是服务端也有可能是客户端。如果设备是服务端,那么我们只要编写一个Socket客户端连接即可,至于怎么编写,根据实际情况而定。如果设备是客户端,那么我们就需要搭建一个服务端Socket来监听设备的连接请求。一旦连接建立后,就可以通过该Socket连接执行收发任务了。需要注意的是,所要发送的内容要根据不同设备的协议编码规定。
在这里介绍一个案例,之前一个项目中的设备用到了AGV小车,小车的工作流程大概如下图所示。
该AGV小车的通讯方式就是通过Socket进行连接,该厂商提供的是服务端的Socket。所以在MES中,针对这个项目只要拿到厂商提供的IP和端口号就可以和设备进行实时交互了。