基于以太网通信的车辆自动化称重管理系统设计

2022-05-26 13:01张江辰徐世许孙学凯朱君高
制造业自动化 2022年5期
关键词:卡号读卡器上位

张江辰,徐世许,孙学凯,朱君高

(青岛大学 自动化学院,青岛 266071)

0 引言

在工业生产和国民经济生活中,车辆称重业务在各个行业具有广泛应用,始终占据着重要的地位。国民经济的迅速发展也使得各类企业对车辆称重业务的需求量越来越大,这对一些企业的车辆称重系统和车辆称重业务部门造成了极大的压力,同时也为车辆自动化称重管理系统的发展带来了新的挑战与历史机遇。某再生能源公司车辆称重流程复杂且效率低下,在称重时需要现场工作人员将车辆称重信息录入Excel表格,耗费大量时间成本,并且会发生现场工作人员与车主串通对称重数据徇私舞弊,给企业带来经济上的损失[1]。针对以上存在的问题,设计了一套适用于企业的、能够实现车辆自动化称重、具有称重管理的车辆自动化称重管理系统。该系统应用后在防止称重环节人员作弊的同时可大大提高用户的称重效率,并提高企业的管理水平。

1 硬件结构

自动化称重管理系统硬件由上位机、欧姆龙CP1H系列PLC、梅特勒-托利多IND780型称重仪表、梅特勒-托利多VTS257120-3418型数字式电子汽车衡、语音播报控制器、信号指示灯、出入口挡杆、红外对射装置、地感线圈、监控摄像头组成。车辆称重前,需要通过RFID读卡器识别车辆称重权限,权限通过后,PLC控制挡杆打开,两侧红灯亮起,现场语音播报“车辆识别成功”,车辆开始驶入汽车衡;车辆完全驶入汽车衡后,红外对射装置检测车辆是否完全上秤;完全上秤后,两侧档杆落下,开始读取车辆重量数据;数据读取后系统自动进行车辆相关信息以及称重数据的保存,完成数据保存后出口侧档杆抬起,语音播报“重量读取完毕,请下称”;当出口侧地感线圈检测到信号变化后,表示汽车已经完全离开汽车衡,出口侧档杆落下,称重完成。IND780称重仪表获取到车辆重量后,通过工业以太网传送到上位机中。系统硬件结构如图1所示。

图1 系统硬件结构图

2 上位机通信程序设计

2.1 上位机与PLC的Fins TCP通信

在车辆自动化称重过程中,上位机需要对PLC发送命令指示门禁挡杆和语音播报器发出动作,当上位机读取到稳定的车辆重量数据后也需要指示PLC完成对硬件的一系列操作。基于Fins TCP协议的以太网通信,可以实现上位机与欧姆龙PLC的通信[2]。具体实现过程与编程如下:

1)引入命名空间。用C#语言实现Fins TCP通信需要开启Socket服务,将PLC作为服务器端,将上位机作为客户端来进行通信。开启Socket服务必须引入System.Net.Sockets和using System.Net命名空间。引入这两项命名空间的代码为:

2)构建Fins TCP协议中PLC的IP地址、端口号、本机节点等参数[3]。其中设定的string类型变量RemoteIP代表PLC的IP地址,int类型变量RemotePort代表端口号,byte类型变量 fra表示本机节点。相关代码如下:

3)建立握手连接。所谓建立握手连接就是上位机向PLC发送握手连接命令,PLC接收到命令后向上位机返回命令,如果返回命令中无错误返回值代表握手连接成功。上位机向PLC发送握手的命令编码如下所示:

4)写位数据。对PLC写数据就是将构建好的具有写位数据命令Fins TCP协议帧发送给PLC。以下程序为构建写位数据字段的程序,其中变量memory和sendBit分别表示内存地址和位号。

5)返回值判断。在Fins TCP通信过程中,上位机对PLC发送Fins TCP协议指令码,然后PLC返回响应码,响应码包含响应返回值,通过读取返回值可以判断指令是否执行成功。

2.2 上位机与称重仪表通信

IND780称重仪表拥有EtherNet/IP接口,使用Socket服务可与上位机建立通信[5]。通信建立后,开启称重数据监听线程,可实现上位机对称重仪表中数据的实时读取。以下为建立通信和监听线程的主要程序。上位机读取称重数据的软件流程图如图2所示。

图2 称重数据读取软件流程图

1)建立通信。

2)建立监听线程。

2.2.2 称重仪表数据输出格式

称重仪表的数据输出格式为标准连续输出模式,数据以十六进制的ASCII码传输,一条完整的数据共有18个字符。采用连续输出模式一般禁用校验和,因此除去数据标志E位,此时总位数为17。表1为IND780称重仪表的标准连续输出格式数据。

表1 仪表标准连续输出格式

2.2.3 重量数据处理

上位机为了将从称重仪表中读取到的数据便于处理,首先需要将接收的数据从十六进制ASCII码转换为标准ASCII码,并将其作为String类型数据进行处理。以下为通过String类型数据字符串中截取重量数据的处理过程:

1)首先使用String类的LastIndexOf(FindStr)方法,设定数据流中的字母“D”的十六进制数作为需要查找的字符参数Findstr,此时将返回字母“D”的在字符串中的下标。

2)依次向前查找字符串表示重量的起始下标,使用SubString(a,b)方法,将参数a设定为重量数据的起始下标,b作为向后查找的位数,由此可以截取到称重数据。

3)最后上位机在连续获取5次数据并且之间不超过设定误差后,将此次称重数据记录,这样就完成了一次稳定重量数据的读取。

2.3 上位机与RFID读卡器的RS485通信设计

2.3.1 RS485通信建立

使用串口通信的方式实现上位机与RFID读卡器的RS485通信,在C#语言环境下实现RS485通信串口通信一般需要调用SerialPort类来实现,在系统硬件设置选项中,使用SerialPort类可以根据RFID读卡器的各项通信参数来设置“串口号”,“波特率”,“数据位”,“停止位”,“校验位”,设置正确后使用硬件连接测试,连接成功后表示建立起通信。

2.3.2 RFID卡号读取

建立起RS485通信后,根据RFID读卡器厂家提供的SDK,只需调用SDK中设计好的类和方法,上位机便可以对读卡器进行相应操作,厂家提供的SDK中的类和方法如表2所示。如上位机读取识别卡信息时需要循环接收串口信息,系统在开机运行时会自动调用Card类的start()方法,保持开启状态[4],当读卡器读取到数据时,可以调用SDK中的读取函数即read()方法对卡号信息进行读取。

表2 RFID数据读取类及方法表

卡号信息用字符串类型数据保存。在上位机成功提取到卡号信息后对该卡号进行数据库中比对,进行比对的数据来源为卡信息表。如果卡信息表中存在该卡号,则表示比对成功允许车辆称重,否则不允许称重。在车辆称重过程中不允许对卡号的读取操作。对卡号读取并进行判断的软件流程图如图3所示。

图3 卡号读取判断软件流程图

3 系统功能

车辆称重管理系统在Windows7系统下的Visual Studio 2017平台开发,用C#语言编程实现,具体实现的功能如下:

1)新增车辆信息录入功能。在车辆入厂前,将需要写入信息的RFID识别卡发放给运输司机。进行制卡时,点击卡信息维护界面上的增加按钮,将卡放到读卡器上,系统会自动读取卡号[5]。然后输入各类信息如车牌号、货物名称、发货单位等,最后保存便完成制卡。新增车辆信息录入界面如图4所示。

图4 新增车辆信息录入界面

2)系统状态监视功能。为实时显示车辆的称重过程状态、展示系统读取到的各类信息,因此系统的主界面需要监控并显示各类数据与状态[6]。实时状态监视界面主要由车辆状态监视、重量数据显示、车辆信息显示、临时表历史记录显示、称重历史曲线等组成。称重显示主界面如图5所示。

图5 车辆称重显示主界面

3)称重数据查询功能。数据查询可以根据时间段和多个查询条件如车牌号、卡号、货物名称、重量范围等得到所有的称重数据记录[7],在数据查询中时间条件是必须输入条件,其他条件可以自由组合。选择好查询条件后,点击确认查询,可以查询到数据库中记录的具体信息。数据查询界面如图6所示。

图6 称重数据查询界面

4 结语

本文根据企业具体称重需求,结合欧姆龙PLC与Visual Studio 2017环境下开发的上位机软件,设计了车辆自动化称重管理系统。系统具有车辆权限检测、动态检重、数据读取、数据存储等功能,能够将车辆信息自动录入数据库中,方便用户查询、追溯。目前该系统已经在企业中投入使用,减少了人工成本,提高了检重效率,运行效果稳定可靠,为企业提升了经济效益。

猜你喜欢
卡号读卡器上位
河南省长葛市彩红蜂衣蜂帽加工厂
河南省长葛市彩红蜂衣蜂帽加工厂
与淘汰命运抗争 看懂笔记本的读卡器
特斯拉 风云之老阿姨上位
颜值与功能并重
基于EMV非接通信规范的非接触读卡器设计
多合一读卡器
基于ZigBee和VC上位机的教室智能监测管理系统
好老板
基于VC的PLC数据采集管理系统