Public Class Form_C5IO
Dim C5IO_Relay_Num As UInteger = 20 'C5IO 继电器数
Dim C5IO_DO_Num As UInteger = 6 'C5IO DO数
Dim C5IO_DI_Num As UInteger = 7 'C5IO DI数
Dim C5IO_PKT_Type As Byte = &HF1 'C5IO设备类型 - 这设备类型只用于BLV_BUS协议通讯使用
Dim Reply_CMD As Byte = &HA0 '回复命令
Class DEVICE_STATE
Public DI_Type(13) As Byte
Public DI_State(13) As Byte
Public DI_Level As UInt32
Public DO_State(5) As Byte
Public DO_Level As UInt32
Public Relay_State(24) As Byte
Public Relay_Level As UInt64
End Class
Dim Dev_State As New DEVICE_STATE
'''
''' C5IO 控制CMD
'''
Enum CMD
Inquire = &H20
Set_Relay = &H21
Set_Relay_Inching = &H22
Set_DO = &H23
Set_DO_Inching = &H24
Set_DI = &H25
End Enum
'''
''' 获取C5IO别名参数
'''
Public Sub Get_C5IO_TextBox_Name()
TextBox_DI1.Text = My.Settings.DI_Name1
TextBox_DI2.Text = My.Settings.DI_Name2
TextBox_DI3.Text = My.Settings.DI_Name3
TextBox_DI4.Text = My.Settings.DI_Name4
TextBox_DI5.Text = My.Settings.DI_Name5
TextBox_DI6.Text = My.Settings.DI_Name6
TextBox_DI7.Text = My.Settings.DI_Name7
TextBox_DO1.Text = My.Settings.DO_Name1
TextBox_DO2.Text = My.Settings.DO_Name2
TextBox_DO3.Text = My.Settings.DO_Name3
TextBox_DO4.Text = My.Settings.DO_Name4
TextBox_DO5.Text = My.Settings.DO_Name5
TextBox_DO6.Text = My.Settings.DO_Name6
TextBox_Relay1.Text = My.Settings.Relay_Name1
TextBox_Relay2.Text = My.Settings.Relay_Name2
TextBox_Relay3.Text = My.Settings.Relay_Name3
TextBox_Relay4.Text = My.Settings.Relay_Name4
TextBox_Relay5.Text = My.Settings.Relay_Name5
TextBox_Relay6.Text = My.Settings.Relay_Name6
TextBox_Relay7.Text = My.Settings.Relay_Name7
TextBox_Relay8.Text = My.Settings.Relay_Name8
TextBox_Relay9.Text = My.Settings.Relay_Name9
TextBox_Relay10.Text = My.Settings.Relay_Name10
TextBox_Relay11.Text = My.Settings.Relay_Name11
TextBox_Relay12.Text = My.Settings.Relay_Name12
TextBox_Relay13.Text = My.Settings.Relay_Name13
TextBox_Relay14.Text = My.Settings.Relay_Name14
TextBox_Relay15.Text = My.Settings.Relay_Name15
TextBox_Relay16.Text = My.Settings.Relay_Name16
TextBox_Relay17.Text = My.Settings.Relay_Name17
TextBox_Relay18.Text = My.Settings.Relay_Name18
TextBox_Relay19.Text = My.Settings.Relay_Name19
TextBox_Relay20.Text = My.Settings.Relay_Name20
End Sub
'''
''' 保存C5IO别名参数
'''
Public Sub Save_C5IO_TextBox_Name()
My.Settings.DI_Name1 = TextBox_DI1.Text
My.Settings.DI_Name2 = TextBox_DI2.Text
My.Settings.DI_Name3 = TextBox_DI3.Text
My.Settings.DI_Name4 = TextBox_DI4.Text
My.Settings.DI_Name5 = TextBox_DI5.Text
My.Settings.DI_Name6 = TextBox_DI6.Text
My.Settings.DI_Name7 = TextBox_DI7.Text
My.Settings.DO_Name1 = TextBox_DO1.Text
My.Settings.DO_Name2 = TextBox_DO2.Text
My.Settings.DO_Name3 = TextBox_DO3.Text
My.Settings.DO_Name4 = TextBox_DO4.Text
My.Settings.DO_Name5 = TextBox_DO5.Text
My.Settings.DO_Name6 = TextBox_DO6.Text
My.Settings.Relay_Name1 = TextBox_Relay1.Text
My.Settings.Relay_Name2 = TextBox_Relay2.Text
My.Settings.Relay_Name3 = TextBox_Relay3.Text
My.Settings.Relay_Name4 = TextBox_Relay4.Text
My.Settings.Relay_Name5 = TextBox_Relay5.Text
My.Settings.Relay_Name6 = TextBox_Relay6.Text
My.Settings.Relay_Name7 = TextBox_Relay7.Text
My.Settings.Relay_Name8 = TextBox_Relay8.Text
My.Settings.Relay_Name9 = TextBox_Relay9.Text
My.Settings.Relay_Name10 = TextBox_Relay10.Text
My.Settings.Relay_Name11 = TextBox_Relay11.Text
My.Settings.Relay_Name12 = TextBox_Relay12.Text
My.Settings.Relay_Name13 = TextBox_Relay13.Text
My.Settings.Relay_Name14 = TextBox_Relay14.Text
My.Settings.Relay_Name15 = TextBox_Relay15.Text
My.Settings.Relay_Name16 = TextBox_Relay16.Text
My.Settings.Relay_Name17 = TextBox_Relay17.Text
My.Settings.Relay_Name18 = TextBox_Relay18.Text
My.Settings.Relay_Name19 = TextBox_Relay19.Text
My.Settings.Relay_Name20 = TextBox_Relay20.Text
End Sub
'''
''' 获取DI类型
'''
'''
'''
Public Function Get_BLV_IO_DI_Type(type As Byte) As String
Dim temp_string As String
Select Case type
Case 1
temp_string = "按键"
Case 2
temp_string = "PIR"
Case 3
temp_string = "干接点"
Case Else
temp_string = "类型没定义"
End Select
Return temp_string
End Function
Public Function Get_BLV_IO_DI_Status(state As Byte) As String
Dim temp_string As String = ""
Select Case state
Case 0
temp_string = "没动作"
Case 1
temp_string = "触发/点按"
Case 2
temp_string = "长按"
Case 3
temp_string = "长按松开"
End Select
Return temp_string
End Function
Public Function Get_BLV_IO_DO_Status(state As Byte) As String
Dim temp_string As String = ""
Select Case state
Case 0
temp_string = "关闭"
Case 1
temp_string = "打开"
End Select
Return temp_string
End Function
Public Function Get_BLV_IO_RELAY_Status(state As Byte) As String
Dim temp_string As String = ""
Select Case state
Case 0
temp_string = "关闭"
Case 1
temp_string = "打开"
End Select
Return temp_string
End Function
'''
''' 解析C5IO协议回复数据内容
'''
''' 串口数据
''' 0x00:解析数据成功,其他值:解析失败
Public Function Parse_RelayData_Protocol_Content(data As Byte(), ByRef parsing_str As String) As Byte
Dim rev As Byte
Dim di_num As Byte
Dim do_num As Byte
Dim relay_num As Byte
Dim parsing_type As Byte
Dim temp_byte As Byte
rev = BLV_INFO.CheckSum(data, data.Length) '和校验
If rev <> &H0 Then 'if(rev!=0x00)
Return BLV_INFO.PROCESS_RETURN.Check_Error '和校验错误
End If
If data(BLV_INFO.BUS_PKT.PKT_DevType) <> C5IO_PKT_Type Then
Return BLV_INFO.PROCESS_RETURN.DevType_Error '设备类型错误
End If
If data(BLV_INFO.BUS_PKT.PKT_LEN) <> data.Length Then
Return BLV_INFO.PROCESS_RETURN.Len_Error '数据长度错误
End If
If data(BLV_INFO.BUS_PKT.PKT_CMD) <> Reply_CMD Then
Return BLV_INFO.PROCESS_RETURN.Cmd_Error '回复命令错误
End If
BLV_INFO.DEBUG_Printf("C5IO回复数据内容解析")
'判断一下数据长度,判断当前IO是哪一个版本
If data(BLV_INFO.BUS_PKT.PKT_LEN) = 17 Then 'C5IO数据解析
parsing_type = &H1
di_num = 7
do_num = 5
relay_num = 20
parsing_str += "C5IO回复数据解析 "
BLV_INFO.DEBUG_Printf("C5IO回复数据解析")
ElseIf data(BLV_INFO.BUS_PKT.PKT_LEN) = 23 Then 'C12IO数据解析
parsing_type = &H2
di_num = 13
do_num = 5
relay_num = 13
parsing_str += "C12IO回复数据解析 "
BLV_INFO.DEBUG_Printf("C12IO回复数据解析")
ElseIf data(BLV_INFO.BUS_PKT.PKT_LEN) = 31 Then 'CSIO数据解析
parsing_type = &H3
di_num = 13
do_num = 5
relay_num = 24
parsing_str += "CSIO回复数据解析 "
BLV_INFO.DEBUG_Printf("CSIO回复数据解析")
End If
Select Case data(BLV_INFO.BUS_PKT.PKT_PARA)
Case &H0
parsing_str += "查询成功" & vbCrLf
BLV_INFO.DEBUG_Printf("查询成功")
Case &H1
parsing_str += "继电器执行成功" & vbCrLf
BLV_INFO.DEBUG_Printf("继电器执行成功")
Case &H2
parsing_str += "继电器点动执行成功" & vbCrLf
BLV_INFO.DEBUG_Printf("继电器点动执行成功")
Case &H3
parsing_str += "DO执行成功" & vbCrLf
BLV_INFO.DEBUG_Printf("DO执行成功")
Case &H4
parsing_str += "DO点动执行成功" & vbCrLf
BLV_INFO.DEBUG_Printf("DO点动执行成功")
Case &H5
parsing_str += "DI执行成功" & vbCrLf
BLV_INFO.DEBUG_Printf("DI执行成功")
Case &HF0
parsing_str += "数据格式错误" & vbCrLf
BLV_INFO.DEBUG_Printf("数据格式错误")
Case Else
parsing_str += "数据格式错误" & vbCrLf
BLV_INFO.DEBUG_Printf($"暂无该动作回复:{data(BLV_INFO.BUS_PKT.PKT_PARA)}")
End Select
'解析继电器、DO、DI状态
If parsing_type = &H1 Then 'C5IO
For idx = 0 To di_num - 1
Dev_State.DI_Type(idx) = (data(BLV_INFO.BUS_PKT.PKT_PARA + 1 + (idx \ 4)) >> ((idx Mod 4) * 2)) And &H3
Dev_State.DI_State(idx) = (data(BLV_INFO.BUS_PKT.PKT_PARA + 3 + (idx \ 4)) >> ((idx Mod 4) * 2)) And &H3
Dev_State.DI_Level = data(BLV_INFO.BUS_PKT.PKT_PARA + 5) And &HFF
parsing_str += $"DI{idx + 1} TYPE:{Get_BLV_IO_DI_Type(Dev_State.DI_Type(idx)),4} State:{Get_BLV_IO_DI_Status(Dev_State.DI_State(idx)),4}" & vbCrLf
BLV_INFO.DEBUG_Printf($"DI{idx} TYPE:{Get_BLV_IO_DI_Type(Dev_State.DI_Type(idx)),4} State:{Get_BLV_IO_DI_Status(Dev_State.DI_State(idx)),4}")
Next
Dev_State.DO_Level = data(BLV_INFO.BUS_PKT.PKT_PARA + 6) And &HFF
Dev_State.Relay_Level = data(BLV_INFO.BUS_PKT.PKT_PARA + 9) And &HFF
Dev_State.Relay_Level = data(BLV_INFO.BUS_PKT.PKT_PARA + 8) Or (Dev_State.Relay_Level << 8)
Dev_State.Relay_Level = data(BLV_INFO.BUS_PKT.PKT_PARA + 7) Or (Dev_State.Relay_Level << 8)
parsing_str += $"DO_Level:{Dev_State.DO_Level:X} Relay_Level:{Dev_State.Relay_Level:X}" & vbCrLf
BLV_INFO.DEBUG_Printf($"DO_Level:{Dev_State.DO_Level:X} Relay_Level:{Dev_State.Relay_Level:X}")
For idx = 0 To do_num - 1
Dev_State.DO_State(idx) = (Dev_State.DO_Level) >> idx And &H1
parsing_str += $"DO_{idx + 1} {Get_BLV_IO_DO_Status(Dev_State.DO_State(idx)),3}" & vbCrLf
Next
For idx = 0 To relay_num - 1
Dev_State.Relay_State(idx) = (Dev_State.Relay_Level >> idx) And &H1
parsing_str += $"RELAY_{idx + 1} {Get_BLV_IO_RELAY_Status(Dev_State.Relay_State(idx)),3}" & vbCrLf
Next
ElseIf parsing_type = &H2 Then 'C12IO
For idx = 0 To di_num - 1
Dev_State.DI_Type(idx) = (data(BLV_INFO.BUS_PKT.PKT_PARA + 1 + (idx \ 4)) >> ((idx Mod 4) * 2)) And &H3
Dev_State.DI_State(idx) = (data(BLV_INFO.BUS_PKT.PKT_PARA + 5 + (idx \ 4)) >> ((idx Mod 4) * 2)) And &H3
Dev_State.DI_Level = data(BLV_INFO.BUS_PKT.PKT_PARA + 10) And &HFF
Dev_State.DI_Level = data(BLV_INFO.BUS_PKT.PKT_PARA + 9) Or (Dev_State.DI_Level << 8)
parsing_str += $"DI{idx + 1} TYPE:{Get_BLV_IO_DI_Type(Dev_State.DI_Type(idx)),4} State:{Get_BLV_IO_DI_Status(Dev_State.DI_State(idx)),4}" & vbCrLf
BLV_INFO.DEBUG_Printf($"DI{idx} TYPE:{Get_BLV_IO_DI_Type(Dev_State.DI_Type(idx)),4} State:{Get_BLV_IO_DI_Status(Dev_State.DI_State(idx)),4}")
Next
Dev_State.DO_Level = data(BLV_INFO.BUS_PKT.PKT_PARA + 12) And &HFF
Dev_State.DO_Level = data(BLV_INFO.BUS_PKT.PKT_PARA + 11) Or (Dev_State.DO_Level << 8)
Dev_State.Relay_Level = data(BLV_INFO.BUS_PKT.PKT_PARA + 15) And &HFF
Dev_State.Relay_Level = data(BLV_INFO.BUS_PKT.PKT_PARA + 14) Or (Dev_State.Relay_Level << 8)
Dev_State.Relay_Level = data(BLV_INFO.BUS_PKT.PKT_PARA + 13) Or (Dev_State.Relay_Level << 8)
parsing_str += $"DO_Level:{Dev_State.DO_Level:X} Relay_Level:{Dev_State.Relay_Level:X}" & vbCrLf
BLV_INFO.DEBUG_Printf($"DO_Level:{Dev_State.DO_Level:X} Relay_Level:{Dev_State.Relay_Level:X}")
For idx = 0 To do_num - 1
Dev_State.DO_State(idx) = (Dev_State.DO_Level) >> idx And &H1
parsing_str += $"DO_{idx + 1} {Get_BLV_IO_DO_Status(Dev_State.DO_State(idx)),3}" & vbCrLf
Next
For idx = 0 To relay_num - 1
Dev_State.Relay_State(idx) = (Dev_State.Relay_Level >> idx) And &H1
parsing_str += $"RELAY_{idx + 1} {Get_BLV_IO_RELAY_Status(Dev_State.Relay_State(idx)),3}" & vbCrLf
Next
ElseIf parsing_type = &H3 Then 'CSIO
'
parsing_str += $"CSIO版本:{data(BLV_INFO.BUS_PKT.PKT_PARA + 16),2} "
parsing_str += $"RTC时间:20{data(BLV_INFO.BUS_PKT.PKT_PARA + 17),2}-{data(BLV_INFO.BUS_PKT.PKT_PARA + 18),2}-{data(BLV_INFO.BUS_PKT.PKT_PARA + 19),2} {data(BLV_INFO.BUS_PKT.PKT_PARA + 20),2}:{data(BLV_INFO.BUS_PKT.PKT_PARA + 21),2}:{data(BLV_INFO.BUS_PKT.PKT_PARA + 22),2} 星期{data(BLV_INFO.BUS_PKT.PKT_PARA + 23),2}" & vbCrLf
For idx = 0 To di_num - 1
temp_byte = data(BLV_INFO.BUS_PKT.PKT_PARA + 1 + (idx \ 4)) >> ((idx Mod 4) * 2)
Dev_State.DI_Type(idx) = temp_byte And &H3
temp_byte = data(BLV_INFO.BUS_PKT.PKT_PARA + 5 + (idx \ 4)) >> ((idx Mod 4) * 2)
Dev_State.DI_State(idx) = temp_byte And &H3
parsing_str += $"DI{idx + 1} TYPE:{Get_BLV_IO_DI_Type(Dev_State.DI_Type(idx)),4} State:{Get_BLV_IO_DI_Status(Dev_State.DI_State(idx)),4}" & vbCrLf
BLV_INFO.DEBUG_Printf($"DI{idx} TYPE:{Get_BLV_IO_DI_Type(Dev_State.DI_Type(idx)),4} State:{Get_BLV_IO_DI_Status(Dev_State.DI_State(idx)),4}")
Next
Dev_State.DI_Level = data(BLV_INFO.BUS_PKT.PKT_PARA + 10) And &HFF
Dev_State.DI_Level = data(BLV_INFO.BUS_PKT.PKT_PARA + 9) Or (Dev_State.DI_Level << 8)
Dev_State.DO_Level = data(BLV_INFO.BUS_PKT.PKT_PARA + 12) And &HFF
Dev_State.DO_Level = data(BLV_INFO.BUS_PKT.PKT_PARA + 11) Or (Dev_State.DO_Level << 8)
Dev_State.Relay_Level = data(BLV_INFO.BUS_PKT.PKT_PARA + 15) And &HFF
Dev_State.Relay_Level = data(BLV_INFO.BUS_PKT.PKT_PARA + 14) Or (Dev_State.Relay_Level << 8)
Dev_State.Relay_Level = data(BLV_INFO.BUS_PKT.PKT_PARA + 13) Or (Dev_State.Relay_Level << 8)
parsing_str += $"DI_Level:{Dev_State.DI_Level:X} DO_Level:{Dev_State.DO_Level:X} Relay_Level:{Dev_State.Relay_Level:X}" & vbCrLf
BLV_INFO.DEBUG_Printf($"DI_Level:{Dev_State.DI_Level:X} DO_Level:{Dev_State.DO_Level:X} Relay_Level:{Dev_State.Relay_Level:X}")
For idx = 0 To do_num - 1
Dev_State.DO_State(idx) = (Dev_State.DO_Level) >> idx And &H1
parsing_str += $"DO_{idx + 1} {Get_BLV_IO_DO_Status(Dev_State.DO_State(idx)),3}" & vbCrLf
BLV_INFO.DEBUG_Printf($"DO_{idx + 1} {Get_BLV_IO_DO_Status(Dev_State.DO_State(idx)),3}")
Next
For idx = 0 To relay_num - 1
Dev_State.Relay_State(idx) = (Dev_State.Relay_Level >> idx) And &H1
parsing_str += $"RELAY_{idx + 1} {Get_BLV_IO_RELAY_Status(Dev_State.Relay_State(idx)),3}" & vbCrLf
BLV_INFO.DEBUG_Printf($"RELAY_{idx + 1} {Get_BLV_IO_RELAY_Status(Dev_State.Relay_State(idx)),3}")
Next
'后面还有CSIO类型和RTC时间
Else
End If
Return &H0
End Function
'''
''' 解析C5IO通讯控制数据内容
'''
'''
'''
'''
Public Function Parse_ControlData_Protocol_Content(data As Byte(), ByRef parsing_str As String) As Byte
Select Case data(BLV_INFO.BUS_PKT.PKT_CMD)
Case CMD.Inquire
parsing_str += "BLV_IO 查询命令" & vbCrLf
BLV_INFO.DEBUG_Printf("BLV_IO 查询命令")
Case CMD.Set_DI
parsing_str += "BLV_IO 设置DI状态" & vbCrLf
BLV_INFO.DEBUG_Printf("BLV_IO 设置DI状态")
Case CMD.Set_DO
parsing_str += "BLV_IO 设置DO状态" & vbCrLf
BLV_INFO.DEBUG_Printf("BLV_IO 设置DO状态")
Case CMD.Set_DO_Inching
parsing_str += "BLV_IO 设置DO点动状态" & vbCrLf
BLV_INFO.DEBUG_Printf("BLV_IO 设置DO点动状态")
Case CMD.Set_Relay
parsing_str += "BLV_IO 设置继电器状态" & vbCrLf
BLV_INFO.DEBUG_Printf("BLV_IO 设置继电器状态")
Case CMD.Set_Relay_Inching
parsing_str += "BLV_IO 设置继电器点动状态" & vbCrLf
BLV_INFO.DEBUG_Printf("BLV_IO 设置继电器点动状态")
Case Else
parsing_str += "BLV_IO 暂无该命令解析内容" & vbCrLf
BLV_INFO.DEBUG_Printf("暂无该命令解析内容")
End Select
End Function
'''
''' 设置C5IO显示状态
'''
Public Sub Set_C5IO_Show_Status(relay As UInteger, do_state As UInteger, di_state As UInteger)
Dim temp_state As Byte = 0
'Relay继电器状态
For index As Byte = 1 To C5IO_Relay_Num
If (relay >> (index - 1)) And &H1 Then
temp_state = 1
Else
temp_state = 0
End If
'Console.WriteLine(Panel1.Controls.Item(index).Name & " " & Panel1.Controls.Item(index).GetType.ToString) '获取容器内控件名和类型
Set_C5IO_Show_Relay_Status(index, temp_state)
Next
'DO状态设置
For index As Byte = 1 To C5IO_DO_Num
If (do_state >> (index - 1)) And &H1 Then
temp_state = 1
Else
temp_state = 0
End If
Set_C5IO_Show_DO_Status(index, temp_state)
Next
'DI状态设置
For index As Byte = 1 To C5IO_DI_Num
If (di_state >> (index - 1)) And &H1 Then
temp_state = 1
Else
temp_state = 0
End If
Set_C5IO_Show_DI_Status(index, temp_state)
Next
End Sub
'''
''' 设置继电器状态
'''
''' 当前设置继电器序号
''' 设置继电器状态
Public Sub Set_C5IO_Show_Relay_Status(relay_num As Byte, state As Byte)
Select Case relay_num
Case 1
If state = 1 Then
Console.WriteLine("Relay1 打开")
Relay1.BackColor = Color.Lime
Else
Console.WriteLine("Relay1 关闭")
Relay1.BackColor = System.Drawing.SystemColors.Control
End If
Case 2
If state = 1 Then
Console.WriteLine("Relay2 打开")
Relay2.BackColor = Color.Lime
Else
Console.WriteLine("Relay2 关闭")
Relay2.BackColor = System.Drawing.SystemColors.Control
End If
Case 3
If state = 1 Then
Console.WriteLine("Relay3 打开")
Relay3.BackColor = Color.Lime
Else
Console.WriteLine("Relay3 关闭")
Relay3.BackColor = System.Drawing.SystemColors.Control
End If
Case 4
If state = 1 Then
Console.WriteLine("Relay4 打开")
Relay4.BackColor = Color.Lime
Else
Console.WriteLine("Relay4 关闭")
Relay4.BackColor = System.Drawing.SystemColors.Control
End If
Case 5
If state = 1 Then
Console.WriteLine("Relay5 打开")
Relay5.BackColor = Color.Lime
Else
Console.WriteLine("Relay5 关闭")
Relay5.BackColor = System.Drawing.SystemColors.Control
End If
Case 6
If state = 1 Then
Console.WriteLine("Relay6 打开")
Relay6.BackColor = Color.Lime
Else
Console.WriteLine("Relay6 关闭")
Relay6.BackColor = System.Drawing.SystemColors.Control
End If
Case 7
If state = 1 Then
Console.WriteLine("Relay7 打开")
Relay7.BackColor = Color.Lime
Else
Console.WriteLine("Relay7 关闭")
Relay7.BackColor = System.Drawing.SystemColors.Control
End If
Case 8
If state = 1 Then
Console.WriteLine("Relay8 打开")
Relay8.BackColor = Color.Lime
Else
Console.WriteLine("Relay8 关闭")
Relay8.BackColor = System.Drawing.SystemColors.Control
End If
Case 9
If state = 1 Then
Console.WriteLine("Relay9 打开")
Relay9.BackColor = Color.Lime
Else
Console.WriteLine("Relay9 关闭")
Relay9.BackColor = System.Drawing.SystemColors.Control
End If
Case 10
If state = 1 Then
Console.WriteLine("Relay10 打开")
Relay10.BackColor = Color.Lime
Else
Console.WriteLine("Relay10 关闭")
Relay10.BackColor = System.Drawing.SystemColors.Control
End If
Case 11
If state = 1 Then
Console.WriteLine("Relay11 打开")
Relay11.BackColor = Color.Lime
Else
Console.WriteLine("Relay11 关闭")
Relay11.BackColor = System.Drawing.SystemColors.Control
End If
Case 12
If state = 1 Then
Console.WriteLine("Relay12 打开")
Relay12.BackColor = Color.Lime
Else
Console.WriteLine("Relay12 关闭")
Relay12.BackColor = System.Drawing.SystemColors.Control
End If
Case 13
If state = 1 Then
Console.WriteLine("Relay13 打开")
Relay13.BackColor = Color.Lime
Else
Console.WriteLine("Relay13 关闭")
Relay13.BackColor = System.Drawing.SystemColors.Control
End If
Case 14
If state = 1 Then
Console.WriteLine("Relay14 打开")
Relay14.BackColor = Color.Lime
Else
Console.WriteLine("Relay14 关闭")
Relay14.BackColor = System.Drawing.SystemColors.Control
End If
Case 15
If state = 1 Then
Console.WriteLine("Relay15 打开")
Relay15.BackColor = Color.Lime
Else
Console.WriteLine("Relay15 关闭")
Relay15.BackColor = System.Drawing.SystemColors.Control
End If
Case 16
If state = 1 Then
Console.WriteLine("Relay16 打开")
Relay16.BackColor = Color.Lime
Else
Console.WriteLine("Relay16 关闭")
Relay16.BackColor = System.Drawing.SystemColors.Control
End If
Case 17
If state = 1 Then
Console.WriteLine("Relay17 打开")
Relay17.BackColor = Color.Lime
Else
Console.WriteLine("Relay17 关闭")
Relay17.BackColor = System.Drawing.SystemColors.Control
End If
Case 18
If state = 1 Then
Console.WriteLine("Relay18 打开")
Relay18.BackColor = Color.Lime
Else
Console.WriteLine("Relay18 关闭")
Relay18.BackColor = System.Drawing.SystemColors.Control
End If
Case 19
If state = 1 Then
Console.WriteLine("Relay19 打开")
Relay19.BackColor = Color.Lime
Else
Console.WriteLine("Relay19 关闭")
Relay19.BackColor = System.Drawing.SystemColors.Control
End If
Case 20
If state = 1 Then
Console.WriteLine("Relay20 打开")
Relay20.BackColor = Color.Lime
Else
Console.WriteLine("Relay20 关闭")
Relay20.BackColor = System.Drawing.SystemColors.Control
End If
End Select
End Sub
'''
''' 设置DO状态
'''
''' 当前设置DO序号
''' 设置DO状态
Public Sub Set_C5IO_Show_DO_Status(do_num As Byte, state As Byte)
Select Case do_num
Case 1
If state = 1 Then
Console.WriteLine("DO1 打开")
DO1.BackColor = Color.Lime
Else
Console.WriteLine("DO1 关闭")
DO1.BackColor = System.Drawing.SystemColors.Control
End If
Case 2
If state = 1 Then
Console.WriteLine("DO2 打开")
DO2.BackColor = Color.Lime
Else
Console.WriteLine("DO2 关闭")
DO2.BackColor = System.Drawing.SystemColors.Control
End If
Case 3
If state = 1 Then
Console.WriteLine("DO3 打开")
DO3.BackColor = Color.Lime
Else
Console.WriteLine("DO3 关闭")
DO3.BackColor = System.Drawing.SystemColors.Control
End If
Case 4
If state = 1 Then
Console.WriteLine("DO4 打开")
DO4.BackColor = Color.Lime
Else
Console.WriteLine("DO4 关闭")
DO4.BackColor = System.Drawing.SystemColors.Control
End If
Case 5
If state = 1 Then
Console.WriteLine("DO5 打开")
DO5.BackColor = Color.Lime
Else
Console.WriteLine("DO5 关闭")
DO5.BackColor = System.Drawing.SystemColors.Control
End If
Case 6
If state = 1 Then
Console.WriteLine("DO6 打开")
DO6.BackColor = Color.Lime
Else
Console.WriteLine("DO6 关闭")
DO6.BackColor = System.Drawing.SystemColors.Control
End If
End Select
End Sub
'''
''' 设置DI状态
'''
''' 当前设置DI序号
''' 设置DI状态
Public Sub Set_C5IO_Show_DI_Status(di_num As Byte, state As Byte)
Select Case di_num
Case 1
If state = 1 Then
Console.WriteLine("DI1 打开")
DI1.BackColor = Color.Lime
Else
Console.WriteLine("DI1 关闭")
DI1.BackColor = System.Drawing.SystemColors.Control
End If
Case 2
If state = 1 Then
Console.WriteLine("DI2 打开")
DI2.BackColor = Color.Lime
Else
Console.WriteLine("DI2 关闭")
DI2.BackColor = System.Drawing.SystemColors.Control
End If
Case 3
If state = 1 Then
Console.WriteLine("DI3 打开")
DI3.BackColor = Color.Lime
Else
Console.WriteLine("DI3 关闭")
DI3.BackColor = System.Drawing.SystemColors.Control
End If
Case 4
If state = 1 Then
Console.WriteLine("DI4 打开")
DI4.BackColor = Color.Lime
Else
Console.WriteLine("DI4 关闭")
DI4.BackColor = System.Drawing.SystemColors.Control
End If
Case 5
If state = 1 Then
Console.WriteLine("DI5 打开")
DI5.BackColor = Color.Lime
Else
Console.WriteLine("DI5 关闭")
DI5.BackColor = System.Drawing.SystemColors.Control
End If
Case 6
If state = 1 Then
Console.WriteLine("DI6 打开")
DI6.BackColor = Color.Lime
Else
Console.WriteLine("DI6 关闭")
DI6.BackColor = System.Drawing.SystemColors.Control
End If
Case 7
If state = 1 Then
Console.WriteLine("DI7 打开")
DI7.BackColor = Color.Lime
Else
Console.WriteLine("DI7 关闭")
DI7.BackColor = System.Drawing.SystemColors.Control
End If
End Select
End Sub
Private Sub Form_C5IO_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'设置显示文本
Get_C5IO_TextBox_Name()
End Sub
Private Sub Form_C5IO_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
'保存显示文本
Save_C5IO_TextBox_Name()
End Sub
End Class