|
|
|
基于VB及台达触摸屏的监控系统在纺机中的应用 |
|
|
04:读取输入寄存器 在一个或多个输入寄存器中取得当前的二进制值 05:强置单线圈 强置一个逻辑线圈的通断状态 06:预置单线圈 把具体二进制值装入一个保持寄存器
根据modbus协议,通信中mscomm1.output中包含的字符串应包括以下几部分:
起始位 站号 功能码 数据位 校验位 停止位
在此通信中,站号表示人机站号 数据位包括寄存器地址和数据
(2) HMI内部地址与MODBUS地址映射表
 (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 |
|
|
|
| |
|
|
|
|
|
|
|
|