基于VB的原料混合装置网络控制系统

2017-06-26 01:49刘卫生周庆贵张元良刘腾尧顾俊

刘卫生+周庆贵+张元良+刘腾尧+顾俊

【摘 要】论文以称重仪表和PLC为下位机、PC为上位机,实现了计算机和PLC与仪表之间的RS485通讯,开发出的上位机监控软件可以实现流程控制、数据输入/输出和参数在线设置等功能。实验结果表明监控软件界面友好、可操作性强、性能可靠、简单实用。

【Abstract】The paper uses the weighing instrument and PLC as the lower machine, PC as the host computer, realizes the RS485 communication between the computer and PLC instrument, and then develops a PC monitoring software that can realize the process control, data input/output and parameter settings and other functions. The experimental results show that the monitoring software has the characters of friendly interface, strong operability, performance reliable, simple and practical.

【关键词】FX2NPLC;VB;RS485通信

【Keywords】FX2N PLC;VB;RS485 communication

【中图分类号】TP274.2;TP311.1 【文献标志码】A 【文章编号】1673-1069(2017)06-0178-04

1 引言

在叶片制造过程中,胶的配比对产品质量有着重要影响。为保证产品质量,原料的配比要严格按照工艺要求进行。自动配料称重控制系统是将两种以上的配料按一定重量配比要求自动加入混合机内形成混合物料,供下一工序使用。本文介绍了基于VB语言开发的打胶机网络控制系统的工作原理、硬件构成与程序设计流程,并具体给出了串口通信的流程和代码。

2 称重系统构成及主要功能

2.1 系统组成原理

系统由型号为FX2N-32MT的PLC和IND245的称重仪表构成,PLC利用485BD模块和接口转换器与PC链接,称重仪表和工控机485串口相连。图1为控制系统的组成示意图。

2.2 主要控制功能

系统具有配方数据存储和实际配料数据存储功能,能够按照时间、产品型号、打胶人、配料型号、组分等信息生成记录进行远程录入。对现场的生产工艺过程进行监控,通过PLC控制混合设备和实时显示现场的生产情况[1]。控制系统具有不同的工作方式,根据工艺要求,按照不同方式完成混合配料工作。主控制界面如图2所示。

3 数据读取

3.1 称重仪表的数据格式

IND245的连续输出模板能够向远程设备(如PC或显示器)传输称量数据和秤的信息。连续模板可以使用串口1,串口2或以太网。连续输出格式的校验和可选。

表1中显示了18个字节的数据。

连续输出格式说明:

A.数据输出以十六进制02开始;

B.状态字,详情请参照表2,3,4;

C.重量显示值,六位字节,没有符号和小数点。前导零用空格代替;

D.皮重,六位字节,没有小数点;

E.ASCII回车符(0D hex);

F.校验和仅设置为有效时进行传输,校验和用于检查传输数据中的错误。

3.2 MSComm控件

本设计中,利用VB的通信控件MScomm实现串口通信[2],它是一种简单易用的串口通信控件。可通过该控件设置串口状态和通信信息协议和格式。

通过以下五种属性可设置串口的基本设置和操作。

①Setting是字符型,用于设定通信的信息格式。

②Output用于写入发送缓冲区的字符。

③PortOpen是布尔型且是开关通信口。

④Input用于读取接收缓冲区的字符。

⑤CommPort用于设置并返回通信口号并设置通信控件MScomm为哪个串口提供通信服务。

以下三种属性描述如何利用VB所拥有事件驱动机制来进行通信。

①RThreshold用于设置并返回不触发OnComm事件时接收缓冲区被允许的最多字符数。

②SThreshold用于设置并返回不触发OnComm事件时发送缓冲区被允许的最少字符数。

③CommEvent用于返回通信过程中产生的错误信息和事件,反映通信状况。

上位机采用的通信格式为:MSComm1.Settings = "9600,N,7,1"表示波特率是9600bit/s,没有奇偶校验位,7位数据位,1位停止位。

3.3 数据包提取

根据仪表的前述协议格式,要從缓冲区提取出数据首先要找到数据的尾字节,因为通讯控件中数据设置为8位,所以回车符值为128+13=141H,起始符值为128+2=130H。

因为数据采用连续发送方式,设置接收控件数据长度为36,数据为8位,只要找到其中数据的起始符,再看后面是否有回车符,如果有的话就是一个可以接收的数据包。

在托利多的电子秤上所显示的重量数据在数据包中处于5到10位,有6个字节,每个字节对应电子秤上所显示的一个数值。所以以字符串的形式将重量值从变量中取出,再判断小数点的位置,这样就能准确地析取出重量数据[3]。

部分程序代码

Private Sub Form_Load()

MScomm1.CommPort = 8 ' 设置端口号

MScomm1.InputLen=36 '设置接收字符串长度

End Sub

Private Sub Timer2_Timer()

On Error GoTo Sexit '打开数据端口

If MScomm1.PortOpen = True Then GoTo dexit

MScomm1.PortOpen = True

dexit:

fexit = "ok"

sexit:

If fexit = "ok" Then

On Error GoTo ition

weight1 = Mscomm1.Input

dition = "ok"

ition:

If dition = "ok" Then

Else

MsgBox "链接中断", 0 + 16, "警告": Label18.Caption = "未连接": Timer2.Enabled = False: comm.PortOpen = False: Exit Sub

End If

Label18.Caption = "已连接"

Dim i As Long

For i = 1 To 36

If Mid(weight1, i, 1) = Chr(2) Then weight1 = Mid(weight1, i, 18): Exit For

'检测数据

Next i

weight2 = Val(Mid(weight1, 5, 6))

weight2 = weight2 / 1000

Text6.Text = Format(weight2, "0.000")

Mscomm1.InBufferCount = 0

Else

Label18.Caption = "未连接"

End If

End Sub

4 数据库操作

Ado Data控件使用ActiveX数据对象(ADO)来快速建立数据绑定和数据提供者之间的连接。数据绑定控件是任何具有“数据源”属性的控件,数据提供者可以是任何符合OLE DB规范的数据源。连接数据库:将Ado Data控件与数据库进行连接,主要是对Ado Data控件的ConnectionString属性、CommandType属性、RecordSource属性进行设置。

下面是配方数据远程录入的部分程序代码:

Private Sub Inputdata()

Set cnn = New ADODB.Connection cnn.Open "Provider=SQLOLEDB.1;Password=1234;Persist Security Info=True;

User ID=adc;Initial Catalog=质量记录_new;DataSource=192.*.*.1" '訪问远程数据库

cnn.Execute "insert into data1" & _

"(A树脂型号,A树脂批号,A树脂重量,B固化剂型号,B固化剂批号,B固化剂重量,[实际混合比B/A],机器编号,叶片编号,打胶人,生产日期,合计重量,打胶开始时间,打胶结束时间,校核报警记录)" & _

"values ('" & Combo1.Text & "','" & Combo2.Text & "','" & Text1.Text & "','" & Combo3.Text & "','" & Combo4.Text & "'" & _

",'" & Text2.Text & "','" & Text3.Text & "','" & Combo8.Text & "','" & Combo6.Text & "'" & _

",'" & Combo9.Text & "'" & _

",'" & time & "','" & Text6.Text & "','" & Text7.Text & "','" & Text8.Text & "','" & "超出质量标准" + Label22.Caption & "')"

Sleep 200

Set rst = New ADODB.Recordset

rst.Open "select 打胶人 from 质量记录_new.dbo.data1 where 生产日期='" & time & "'", cnn

If Combo9.Text = rst.Fields("打胶人") Then

MsgBox "数据录入成功", 0 + 64, "提示"

Else: MsgBox "请重新输入数据", 0 + 48, 数据录入失败: cnn.Execute "delete from 质量记录_new.dbo.data1 where 生产日期 ='" & time & "'"

End If

End Sub

5 应用情况

该程序已经在某叶片制造企业的混料配比称重系统中得到应用,经过一年多的运行情况表明,系统运行稳定,操作方便,配比质量控制得到了较好保证,并实现了控制参数的远程控制和设备运行情况(包括人员信息、打胶时间、配比、重量等)数据保存和远程监控。实现了混料配比工艺过程的网络化管理。

【参考文献】

【1】朱金平,杨明.基于VB环境下开发的配料称重系统[J].微计算机信息,2003,19(1):36-38.

【2】辛文举.基于VB的标签打印机软件和托利多电子称之间的串口通信[J].自动化技术与应用,2012,31(7):96-98.

【3】周庆贵.基于VB编程环境数据采集系统的设计[J].测控技术,2008,27(4):62-65.