APP下载

基于TCP/IP的安东系统管理软件设计与实现

2020-04-24赵勇

电脑知识与技术 2020年5期

摘要:针对车间产线异常停工,降低产品质量和影响作业效率等问题,提出了安东系统的解决方案。车间现场使用LoRa网络组件,实现了低成本快速灵活的部署,安东系统管理软件通过C#软件和TCP/lP协议就可实现对车间工位信息的采集和管理。有效地提高了产线的效率,为公司的精益管理提供了技术支撑。

关键词:TCP/lP;C#;LoRa;安东系统

中图分类号:TP311 文献标识码:A

文章编号:1009-3044(2020)05-0094-03

开放科学(资源服务)标识码(OSID):

1 背景

当前制造业面临着巨大的竞争压力,必须不断地提高生产效率,降低生产成本。为了提高生产效率,必须减少生产线的停工时间,时刻关注和控制产品质量。安东系统作为精益生产制造管理的一个核心工具,在制造过程利用安东系统可对生产现场的设备、人员、品质、物料等问题进行可视化管理,使员工和主管等相关人员能在第一时间发现问题的根源并解决问题。

本文采用LoRa技术,在产线的各个工位布置RS485终端采集安东系统按键操作盘信号,各工位信号通过LoRa网络将信号传输到集中器,集中器按照固定时间轮询产线工位,安东系统管理软件通过TCP/IP与集中器通讯,采集工位信号,并将实时数据和异常处理过程的完整信息记录在MySQL数据库中。

2 系统设计及关键技术

基于TCP/IP的安东系统管理软件包括两个部分:一部分是使用基于LoRa技术采集现场数据的网络部分,另一部分是C#语言开发的安东系统管理软件。

系统采用了串口和LoRa网络将先将现场操作盘的信号采集到LoRa集中器中,集中器和安东系统管理软件安装的服务器采用以太网技术相连接。LoRa集中器IP和服务器IP地址设定在相同的网段,保证LoRa集中器和服务器之间可以正常交换数据。在服务器上部署Visual Studi02015开发平台和MySQL数据库,使用C#编程语言编写TCP/IP通讯程序,采集数据并将数据和处理结果插入数据库中,根据故障信号等级通过短信或微信发送故障信息。利用多线程技术完成TCP/IP通讯

2.1 LoRa网络结构

LoRa整体网络结构分为终端和网关。终端节点可以同时发给多个基站,一般LoRa终端和网关之间可以通过LoRa无线技术进行数据传输,而网关和服务器之间的交互可以通过TCP/IP协议。物理连接可以是以太网、4G网和无线网络等。

2.2 TCP/IP通信协议的实现

TCP/IP协议概念层模型中分为四层自下而上分别为链路层、网络层、传输层和应用层详见图1。在安东系统管理软件与LoRa通信过程中分别与之一一对应。链路层:使用LoRa集中器将各工位信号统一成工业以太网接口;网络层:使用TCP/IP协议中的IP协议定义了网段地址,区分网段,对不同子网的数据包进行路由;传输层:定义端口,标识应用程序身份,实现端口到端口的通信;应用层:与通信内容有关,定义数据格式并按照对应的格式解读数据。Socket是应用层与TCP/IP协议族通信的中间软件抽象层,是一组接口,它把复杂的TCP/IP协议族隐藏在Socket接口后面。

2.3 多线程

一个正在运行的应用程序在操作系统中被视为一个进程。线程是进程中的基本执行单元,是操作系统分配CPU时间的基本单位,一个进程可以包含若干个线程,在进程入口执行的第一个线程被视为这个进程的主线程。在.NET应用中,都是以Main()方法作为入口的。

安东系统管理软件作为服务器端在与LoRa集中器之间TCP[IP通讯就内置了多个线程,可以通过多线程程序分别负责实现服务器端侦听是否有连接的请求并接受客户端的连接和负责服务器与客户端通信。

3 LoRa网络配置

LoRa网络主要由多个串口转换终端和一个集中器组成。串口转换终端支持RS232和RS485连接方式,参数设置分为串口基本参数设置和LoRa参数设置。串口基本参数设置如波特率、数据位、校验、停止位等和操作盘保持一致;LoRa参数设置包括通信速率,通信信道及身份识别的应用ID与集中器保持一致。集中器配置分为服务器参数和基本参数。服务器参数:协议类型选择TCP client集中器配置为客户端,服务器IP和端口与服务器参数一致;基本参数设置集中器工作在轮询唤醒模式,通信的串口转换终端节点数量,轮询的通信数据帧和轮询的时间等。

4 系统软件实现

安东系统管理软件程序设计主要由:数据采集解析、数据业务逻辑处理和报警信息及处理结果写入数据库三部分组成。数据业务逻辑处理和数据库部分根据客户的要求会各不相同,这里主要讲述TCP服务端通信的实现。

4.1 通信接口设计

TCP通信是面向连接的通信,所以在通信之前,客户端与服务器端必须通过三次握手建立连接然后在通信完毕,还要通过四次挥手断开连接。建立连接后首先安东系统管理软件作为TCP服务器端需要申请一个socket绑定到服务器IP地址和一个端口上,负责监听客户端的消息;然后客户端LoRa集中器新建socket连接到服务器指定端口;最后安东系统管理软件负责监听的socket,监听到客户端有连接过来了,就创建一个负责和客户端通信的socket,等待接收连接程序和發送数据等。安东系统管理软件需要不断的读取LoRa集中器的信息所以建立长连接模式,所有读写请求都利用建立的公用通道来完成,这样读写性能更高效,即使多线程调用情况下也不会受影响。安东系统管理软件服务器端流程详见图2。

4.2 TCP服务器端软件编程实现

1)服务器端定义用于监听的Socket对象:把IP和端口绑定到Socket上:

Socket socketw= new Socket(AddressFamily.InterNetwork,

SocketType.Stream, Protoc olType.Tcp);

IPAddress ip= IPAddress.Parse(" 192. 168.1.208”);

IPEndPoint point= new IPEndPoint(ip, 1883);

socketw.Bind(point);

socketw.Listen(10);

2)开启新线程调用Listen方法进行监听:

Thread th= new Thread(Listen);

th.IsBackground= true;

th.Start(socketw);

3) Listen方法中循环监听,并新建一个socketS负责跟客户端通信,新建一个线程调用Receive方法用于接收消息:

Socket socketS;

void Listen(object o)

f Socket socketWatch=o as Socket;

while (true)

{ socketS= socketWatch.Accept0;

dicSocket.Add(socketS.RemoteEndPoint.ToString0, socketS);

while (true)

{Thread th= new Thread(Receive);

th.IsBackground= true;

th.Start(socketS);)】】

Dictionary dicSocket = new Dictionarv0;

4) Receive方法中循環处理接收的消息:

void Receive(object o)

{Socket socketSend=o as Socket;

while (true)

{ try

{byteo buffer= new byte[36];

int len= socketSend.Receive(buffer);

if (len==0){break;)

string str= Encoding.UTF8.GetString(buffer,0, len);)

catch{¨

4.3 系统界面

安东系统管理软件界面包括工位状态、报警汇总、数据统计和系统设置。工位状态实时显示每个工位运行的状态,显示当前报警信息、待处理的报警信息和已经处理的报警信息;报警汇总显示所有已经发生并处理过的报警信息;数据统计显示各工位报警发生的频率统计等信息;系统设置可设置报警的延迟时间、报警发送的短信或微信账号等。

5 结束语

随着制造业的快速发展,企业精益化管理势在必行。安东系统将生产线工位与管理者相连,在任何有异常状况时发出信号,可以充分暴露和改善生产现场的问题,有效地提高作业效率,为企业的精益化管理提供了有效的技术支撑。

本文基于TCP/IP通讯技术,使用LoRa网络组件实现了车间产线安东系统。同时使用C#语言开发的安东系统管理软件,实时采集产线工位的故障信息,存储故障及故障处理信息,提供短信或微信报警等功能。有效减少了由于设备故障或物料不足而造成的生产线的停线情况,为企业生产和管理提供了技术依据。

参考文献:

[1]冯庆东,杨丽.C#项目开发全程实录[M].3版.北京:清华大学出版社.2013.

[2] Karli Waston.C#入门经典Christian Nagel[M].3版.北京:清华大学出版社,2006.

[3] Ben Forta.MySQL必知必会[M].北京:人民邮电出版社,2009.

[4]史蒂文斯.TCP/IP详解卷1:协议[M].北京:机械工业出版社,2000.

【通联编辑:谢媛媛】

收稿日期:2019 -12 -15

作者简介:赵勇(1974-),甘肃天水人,工程师,主要从事自动控制系统设计及应用工作。