一、引言
该系统用于对各生产线的纺机进行实时监控和查询,并对各班次产量数据进行存储,用户可通过日期时间段、车号、班次等对产量进行综合查询,并进行统计,可在查询出满足条件的数据后,进行报表输出和打印。以下是对系统设计方面的一些讨论。
二、系统结构与功能
精梳机是近年来在纺织行业使用较为普遍的一种设备,其主要作用是排出梳棉生条中一定长度以下的短纤维,提高纤维整齐度,进一步清除纤维中残留的棉结、杂质,提高纤维光洁度。条并卷联合机是精梳工序的准备设备,通常情况下,一套精梳设备由一台条并卷联合机和五台精梳机组成。该产量监控查询系统应用于精梳设备的结构示意图如下所示:
该系统实现了以下功能:
1)实时监控所选机器各班次的当日产量和累计产量以及该机器的运行情况。
2)可定时保存各机器各班次的当日产量及累计产量,且有多种定时方式可选择。
3)能分别根据时间,班次,产量,车号进行查询操作,也可综合考虑数据保存方式进行查询,提高查询准确率。
4)查询结果可显示为报表格式,并可将结果打印输出,方便用户使用。
5)具有系统维护功能,可方便用户进行数据维护。
三、系统设计
1)硬件配置
名称
数量
触摸屏
7
普通PC机
1
转换模块RS232—RS485
1
2) 数据采集部分的设计
触摸屏选用台达系列AE10THTD型,由于其具有强大的通讯功能,灵活的系统构成,生动逼真且丰富的图库,简单易用等特点,在纺织业中得到了广泛的应用,因此通过触摸屏来采集所需数据。所以要对纺机进行实时监控,首先要解决触摸屏与PC的通信问题。所用的台达触摸屏支持标准的MODBUS协议,通过串口与PC相连。
<1>MODBUS通信协议
modbus功能码
01:读取线圈状态 取得一组逻辑线圈的当前状态(ON/OFF)
02:读取输入状态 取得一组开关输入的当前状态(ON/OFF)
03:读取保持寄存器 在一个或多个保持寄存器中取得当前的二进制值
04:读取输入寄存器 在一个或多个输入寄存器中取得当前的二进制值
05:强置单线圈 强置一个逻辑线圈的通断状态
06:预置单线圈 把具体二进制值装入一个保持寄存器
根据modbus协议,通信中mscomm1.output中包含的字符串应包括以下几部分:
起始位 站号 功能码 数据位 校验位 停止位
在此通信中,站号表示人机站号 数据位包括寄存器地址和数据
<2> HMI内部地址与MODBUS地址映射表
MODBUS_ADDRESS
HMI_ADDRESS
PC_ADDRESS
描述
W40001-W41024
$0-$1023
0000-03FF
内部寄存器
W42001-W43024
$M0-$M1023
07D0-0BCF
断电保持内部寄存器
W44001
RCPN0
0FA0
配方编号寄存器
W45001-......
RCP0-RCPn
1388-......
配方寄存器
B00001-B01024
$2000.0-$2063.15
0000-03FF
内部寄存器(bit)
B01025-B02048
$M200.0-$M263.15
0400-07FB
断电内部保持寄存器(bit)
<3>mscomm控件
CommPort 设置并返回通讯端口号。
Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。
PortOpen 设置并返回通讯端口的状态。也可以打开和关闭端口。
Input 从接收缓冲区返回和删除字符。
Output 向传输缓冲区写一个字符串。
<4>HMI与PC的通信及数据采集的设计
LRC算法函数:
Public Function LRC(str)
c = 0
l = Len(str) ’求出str的长度赋值给l
For c = c + 1 To l
c_data = Mid$(str, c, 2) ’在str串中,从c的值开始取2个字符。
d_lrc = d_lrc + Val("&H" + c_data)
c = c + 1
Next c
If d_lrc > &HFF Then
d_lrc = d_lrc Mod &H100
End If
h_lrc = Hex(&HFF - d_lrc + 1)
If Len(h_lrc) > 2 Then
h_lrc = Mid(h_lrc, Len(h_lrc) - 1, 2)
End If
LRC = h_lrc
End Function
下面对数据进行实时采集,数据采集程序界面如下图所示:
Private Sub Timer1_Timer()
’连接数据库
Dim CONN As New ADODB.Connection
Dim DBStr As String
Dim rs As New ADODB.Recordset
DBStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\data.mdb;Persist Security Info=False"
CONN.Open DBStr
Dim Mac_Num ’ Mac_Num是车号
Mac_Num = Combo_MacNum.List(Combo_MacNum.ListIndex)
Debug.Print Mac_Num
sql = "select * from machine where Machine_Num = ’" + Mac_Num + "’" ’获取车号
rs.Open sql, CONN, 1, 3
Txt_type.Text = rs.Fields("machine_type").Value ’获取车的类型(是精梳机还是条并联)
rs.Close
str_type = Mac_Num ’
Set CONN = Nothing
DBStr = ""
’发送数据(根据所选车号发送数据)
If MSComm1.PortOpen = True And stakeout_flag And Combo_MacNum.ListIndex >= 0 Then
str_output = str_type + "030064001D"
上一篇:大屏幕触摸屏在精梳机中的应用