VERSION 5.00 Object = "{648A5603-2C6E-101B-82B6-000000000014}#1.1#0"; "MSCOMM32.OCX" Begin VB.Form PLC Caption = "Power Line Modem - SAMPLE Electronics co." ClientHeight = 5190 ClientLeft = 60 ClientTop = 345 ClientWidth = 7155 LinkTopic = "Form1" ScaleHeight = 5190 ScaleWidth = 7155 StartUpPosition = 3 'Windows ±βΊ»°ͺ Begin VB.CommandButton Command24 Caption = "OFF" Height = 375 Left = 6120 TabIndex = 58 Top = 3600 Width = 855 End Begin VB.CommandButton Command23 Caption = "OFF" Height = 375 Left = 6120 TabIndex = 57 Top = 3120 Width = 855 End Begin VB.CommandButton Command22 Caption = "OFF" Height = 375 Left = 6120 TabIndex = 56 Top = 2640 Width = 855 End Begin VB.CommandButton Command21 Caption = "OFF" Height = 375 Left = 6120 TabIndex = 55 Top = 2160 Width = 855 End Begin VB.CommandButton Command20 Caption = "OFF" Height = 375 Left = 6120 TabIndex = 54 Top = 1680 Width = 855 End Begin VB.CommandButton Command19 Caption = "OFF" Height = 375 Left = 6120 TabIndex = 53 Top = 1200 Width = 855 End Begin VB.CommandButton Command18 Caption = "OFF" Height = 375 Left = 6120 TabIndex = 52 Top = 720 Width = 855 End Begin VB.CommandButton Command17 Caption = "OFF" Height = 375 Left = 6120 TabIndex = 51 Top = 240 Width = 855 End Begin VB.CheckBox Check24 Caption = "P2.7" Height = 375 Left = 4920 TabIndex = 50 Top = 3600 Width = 1095 End Begin VB.CheckBox Check23 Caption = "P2.6" Height = 375 Left = 4920 TabIndex = 49 Top = 3120 Width = 1095 End Begin VB.CheckBox Check22 Caption = "P2.5" Height = 375 Left = 4920 TabIndex = 48 Top = 2640 Width = 1095 End Begin VB.CheckBox Check21 Caption = "P2.4" Height = 375 Left = 4920 TabIndex = 47 Top = 2160 Width = 1095 End Begin VB.CheckBox Check20 Caption = "P2.3" Height = 375 Left = 4920 TabIndex = 46 Top = 1680 Width = 1095 End Begin VB.CheckBox Check19 Caption = "P2.2" Height = 375 Left = 4920 TabIndex = 45 Top = 1200 Width = 1095 End Begin VB.CheckBox Check18 Caption = "P2.1" Height = 375 Left = 4920 TabIndex = 44 Top = 720 Width = 1095 End Begin VB.CheckBox Check17 Caption = "P2.0" Height = 375 Left = 4920 TabIndex = 43 Top = 240 Width = 1095 End Begin VB.CommandButton Command16 Caption = "OFF" Height = 375 Left = 3840 TabIndex = 42 Top = 3600 Width = 855 End Begin VB.CommandButton Command15 Caption = "OFF" Height = 375 Left = 3840 TabIndex = 41 Top = 3120 Width = 855 End Begin VB.CommandButton Command14 Caption = "OFF" Height = 375 Left = 3840 TabIndex = 40 Top = 2640 Width = 855 End Begin VB.CommandButton Command13 Caption = "OFF" Height = 375 Left = 3840 TabIndex = 39 Top = 2160 Width = 855 End Begin VB.CommandButton Command12 Caption = "OFF" Height = 375 Left = 3840 TabIndex = 38 Top = 1680 Width = 855 End Begin VB.CommandButton Command11 Caption = "OFF" Height = 375 Left = 3840 TabIndex = 37 Top = 1200 Width = 855 End Begin VB.CommandButton Command10 Caption = "OFF" Height = 375 Left = 3840 TabIndex = 36 Top = 720 Width = 855 End Begin VB.CommandButton Command9 Caption = "OFF" Height = 375 Left = 3840 TabIndex = 35 Top = 240 Width = 855 End Begin VB.CheckBox Check16 Caption = "P0.7" Height = 375 Left = 2520 TabIndex = 34 Top = 3600 Width = 1215 End Begin VB.CheckBox Check15 Caption = "P0.6" Height = 375 Left = 2520 TabIndex = 33 Top = 3120 Width = 1215 End Begin VB.CheckBox Check14 Caption = "P0.5" Height = 375 Left = 2520 TabIndex = 32 Top = 2640 Width = 1215 End Begin VB.CheckBox Check13 Caption = "P0.4" Height = 375 Left = 2520 TabIndex = 31 Top = 2160 Width = 1215 End Begin VB.CheckBox Check12 Caption = "P0.3" Height = 375 Left = 2520 TabIndex = 30 Top = 1680 Width = 1215 End Begin VB.CheckBox Check11 Caption = "P0.2" Height = 375 Left = 2520 TabIndex = 29 Top = 1200 Width = 1215 End Begin VB.CheckBox Check10 Caption = "P0.1" Height = 375 Left = 2520 TabIndex = 28 Top = 720 Width = 1215 End Begin VB.CheckBox Check9 Caption = "P0.0" Height = 375 Left = 2520 TabIndex = 27 Top = 240 Width = 1215 End Begin MSCommLib.MSComm MSComm1 Left = 5880 Top = -120 _ExtentX = 1005 _ExtentY = 1005 _Version = 393216 DTREnable = -1 'True End Begin VB.Timer Timer1 Interval = 125 Left = 6480 Top = -120 End Begin VB.Frame Frame2 Caption = "Serial" Height = 975 Left = 5760 TabIndex = 24 Top = 4080 Width = 1215 Begin VB.OptionButton OptionCom2 Caption = "Com2" Height = 255 Left = 120 TabIndex = 26 Top = 600 Width = 855 End Begin VB.OptionButton OptionCom1 Caption = "Com1" Height = 255 Left = 120 TabIndex = 25 Top = 240 Value = -1 'True Width = 855 End End Begin VB.CommandButton Command8 Caption = "OFF" Height = 375 Left = 1440 TabIndex = 23 Top = 3600 Width = 855 End Begin VB.CommandButton Command7 Caption = "OFF" Height = 375 Left = 1440 TabIndex = 22 Top = 3120 Width = 855 End Begin VB.CommandButton Command6 Caption = "OFF" Height = 375 Left = 1440 TabIndex = 21 Top = 2640 Width = 855 End Begin VB.CommandButton Command5 Caption = "OFF" Height = 375 Left = 1440 TabIndex = 20 Top = 2160 Width = 855 End Begin VB.CommandButton Command4 Caption = "OFF" Height = 375 Left = 1440 TabIndex = 19 Top = 1680 Width = 855 End Begin VB.CommandButton Command3 Caption = "OFF" Height = 375 Left = 1440 TabIndex = 18 Top = 1200 Width = 855 End Begin VB.CommandButton Command2 Caption = "OFF" Height = 375 Left = 1440 TabIndex = 17 Top = 720 Width = 855 End Begin VB.CommandButton Command1 Caption = "OFF" Height = 375 Left = 1440 TabIndex = 16 Top = 240 Width = 855 End Begin VB.CheckBox Check8 Caption = "P1.7" Height = 375 Left = 240 TabIndex = 15 Top = 3600 Width = 1095 End Begin VB.CheckBox Check7 Caption = "P1.6" Height = 375 Left = 240 TabIndex = 14 Top = 3120 Width = 1095 End Begin VB.CheckBox Check6 Caption = "P1.5" Height = 375 Left = 240 TabIndex = 13 Top = 2640 Width = 1095 End Begin VB.CheckBox Check5 Caption = "P1.4" Height = 375 Left = 240 TabIndex = 12 Top = 2160 Width = 1095 End Begin VB.CheckBox Check4 Caption = "P1.3" Height = 375 Left = 240 TabIndex = 11 Top = 1680 Width = 1095 End Begin VB.CheckBox Check3 Caption = "P1.2" Height = 375 Left = 240 TabIndex = 10 Top = 1200 Width = 1095 End Begin VB.CheckBox Check2 Caption = "P1.1" Height = 375 Left = 240 TabIndex = 9 Top = 720 Width = 1095 End Begin VB.CheckBox Check1 Caption = "P1.0" Height = 375 Left = 240 TabIndex = 8 Top = 240 Width = 1095 End Begin VB.Frame Frame1 Caption = "Node" Height = 975 Left = 120 TabIndex = 0 Top = 4080 Width = 5535 Begin VB.OptionButton Option7 Caption = "Node 7" Height = 255 Left = 4200 TabIndex = 7 Top = 600 Width = 1215 End Begin VB.OptionButton Option6 Caption = "Node 6" Height = 255 Left = 2760 TabIndex = 6 Top = 600 Width = 1335 End Begin VB.OptionButton Option5 Caption = "Node 5" Height = 255 Left = 1320 TabIndex = 5 Top = 600 Width = 1335 End Begin VB.OptionButton Option4 Caption = "Node 4" Height = 255 Left = 120 TabIndex = 4 Top = 600 Width = 1215 End Begin VB.OptionButton Option3 Caption = "Node 3" Height = 255 Left = 4200 TabIndex = 3 Top = 240 Width = 1215 End Begin VB.OptionButton Option2 Caption = "Node 2" Height = 255 Left = 2760 TabIndex = 2 Top = 240 Width = 1335 End Begin VB.OptionButton Option1 Caption = "Node 1" Height = 255 Left = 1320 TabIndex = 1 Top = 240 Width = 1335 End End Begin VB.Label Label3 Caption = "Input Only" Height = 255 Left = 4920 TabIndex = 61 Top = 0 Width = 1095 End Begin VB.Label Label2 Caption = "Input Only" Height = 255 Left = 2520 TabIndex = 60 Top = 0 Width = 1215 End Begin VB.Label Label1 Caption = "Input Only" Height = 255 Left = 240 TabIndex = 59 Top = 0 Width = 1095 End End Attribute VB_Name = "PLC" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False '*********************************************************** '* Description: '* '* SE-PLM '* POWER LINE MODEM '* '* '* Written by Junghoon Kim 01-June-2004 '* '* SAMPLE Electronics co. '* C-18 KwangJang-fl Main bd. ET-Land 16-9 Hangangno-3ga YongSan-gu '* Seoul 140-879 South KOREA '* Tel: +82-2-701-8051 '* Fax: +82-2-701-8058 '* Mail : sample@korea.com '* Web : HTTP://WWW.SAMPLE.CO.KR '* '* '* Command String = '* &HFF + &HAA + "TTTTT" + ":" + "ID" + "P1" + "P0" + "P2" + "CS" '* '* TTTTT -> 3 Bytes ASCII '* : -> 1 Byte ASCII Start Mark '* ID -> 2 Byte ASCII Node Bumber 01 ~ FF '* P1 -> 2 Bytes ASCII Port 1 Data '* P2 -> 2 Bytes ASCII Port 0 Data '* P3 -> 2 Bytes ASCII Port 2 Data '* CS -> 2 Bytes ASCII Check Sum Data '* '* '*********************************************************** ' Option Explicit ' Dim Node_Number As Byte Dim Toggle_P1 As Byte ' Port 1 Toggle Data Dim Toggle_P0 As Byte ' Port 0 Toggle Data Dim Toggle_P2 As Byte ' Port 2 Toggle Data ' Dim Check_Sum As Integer ' Dim Port_1_Data As Byte ' Port 1 Data Dim Port_0_Data As Byte ' Port 0 Data Dim Port_2_Data As Byte ' Port 2 Data ' Dim Node_P1_IO_Mode(7) As Byte ' Port 1 Data Direction 1 -> Input, 0-> Output Dim Node_P1_Data(7) As Byte ' Port 1 Node Data 1 -> Off , 0 -> On Dim Node_P0_IO_Mode(7) As Byte ' Port 0 Data Direction 1 -> Input, 0-> Output Dim Node_P0_Data(7) As Byte ' Port 0 Node Data 1 -> Off , 0 -> On Dim Node_P2_IO_Mode(7) As Byte ' Port 2 Data Direction 1 -> Input, 0-> Output Dim Node_P2_Data(7) As Byte ' Port 2 Node Data 1 -> Off , 0 -> On ' Dim temp As Byte Dim temp1 As Byte Dim temp0 As Byte Dim temp2 As Byte Dim state As Byte ' Dim I As Integer Dim J As Integer Dim K As Integer Dim L As Integer ' Dim M As Boolean ' Dim Preamble_String As String Dim Command_String As String Dim Work_String As String Dim In_String As String '********************************************************* Sub IO_mode_draw() ' temp1 = Node_P1_IO_Mode(Node_Number) ' Port 1 Data Direction temp0 = Node_P0_IO_Mode(Node_Number) ' Port 0 Data Direction temp2 = Node_P2_IO_Mode(Node_Number) ' Port 2 Data Direction '-----------------------------------' Port 1 If (temp1 And &H1) Then ' P1.0 Check1.Value = 1 ' Input Mode Else Check1.Value = 0 ' Output Mode End If ' If (temp1 And &H2) Then ' P1.1 Check2.Value = 1 ' Input Mode Else Check2.Value = 0 ' Output Mode End If ' If (temp1 And &H4) Then ' P1.2 Check3.Value = 1 ' Input Mode Else Check3.Value = 0 ' Output Mode End If ' If (temp1 And &H8) Then ' P1.3 Check4.Value = 1 ' Input Mode Else Check4.Value = 0 ' Output Mode End If ' If (temp1 And &H10) Then ' P1.4 Check5.Value = 1 ' Input Mode Else Check5.Value = 0 ' Output Mode End If ' If (temp1 And &H20) Then ' P1.5 Check6.Value = 1 ' Input Mode Else Check6.Value = 0 ' Output Mode End If ' If (temp1 And &H40) Then ' P1.6 Check7.Value = 1 ' Input Mode Else Check7.Value = 0 ' Output Mode End If ' If (temp1 And &H80) Then ' P1.7 Check8.Value = 1 ' Input Mode Else Check8.Value = 0 ' Output Mode End If '-----------------------------------' Port 0 If (temp0 And &H1) Then ' P0.0 Check9.Value = 1 ' Input Mode Else Check9.Value = 0 ' Output Mode End If ' If (temp0 And &H2) Then ' P0.1 Check10.Value = 1 ' Input Mode Else Check10.Value = 0 ' Output Mode End If ' If (temp0 And &H4) Then ' P0.2 Check11.Value = 1 ' Input Mode Else Check11.Value = 0 ' Output Mode End If ' If (temp0 And &H8) Then ' P0.3 Check12.Value = 1 ' Input Mode Else Check12.Value = 0 ' Output Mode End If ' If (temp0 And &H10) Then ' P0.4 Check13.Value = 1 ' Input Mode Else Check13.Value = 0 ' Output Mode End If ' If (temp0 And &H20) Then ' P0.5 Check14.Value = 1 ' Input Mode Else Check14.Value = 0 ' Output Mode End If ' If (temp0 And &H40) Then ' P0.6 Check15.Value = 1 ' Input Mode Else Check15.Value = 0 ' Output Mode End If ' If (temp0 And &H80) Then ' P0.7 Check16.Value = 1 ' Input Mode Else Check16.Value = 0 ' Output Mode End If '-----------------------------------' Port 2 If (temp2 And &H1) Then ' P2.0 Check17.Value = 1 ' Input Mode Else Check17.Value = 0 ' Output Mode End If ' If (temp2 And &H2) Then ' P2.1 Check18.Value = 1 ' Input Mode Else Check18.Value = 0 ' Output Mode End If ' If (temp2 And &H4) Then ' P2.2 Check19.Value = 1 ' Input Mode Else Check19.Value = 0 ' Output Mode End If ' If (temp2 And &H8) Then ' P2.3 Check20.Value = 1 ' Input Mode Else Check20.Value = 0 ' Output Mode End If ' If (temp2 And &H10) Then ' P2.4 Check21.Value = 1 ' Input Mode Else Check21.Value = 0 ' Output Mode End If ' If (temp2 And &H20) Then ' P2.5 Check22.Value = 1 ' Input Mode Else Check22.Value = 0 ' Output Mode End If ' If (temp2 And &H40) Then ' P2.6 Check23.Value = 1 ' Input Mode Else Check23.Value = 0 ' Output Mode End If ' If (temp2 And &H80) Then ' P2.7 Check24.Value = 1 ' Input Mode Else Check24.Value = 0 ' Output Mode End If ' End Sub Private Sub Check1_Click() ' If Check1.Value = 1 Then ' P1.0 Data Direction 1-> Input 0-> Output Node_P1_IO_Mode(Node_Number) = Node_P1_IO_Mode(Node_Number) Or &H1 Node_P1_Data(Node_Number) = Node_P1_Data(Node_Number) Or &H1 Else Node_P1_IO_Mode(Node_Number) = Node_P1_IO_Mode(Node_Number) And &HFE End If ' IO_mode_draw ' End Sub Private Sub Check2_Click() ' If Check2.Value = 1 Then ' P1.1 Data Direction 1-> Input 0-> Output Node_P1_IO_Mode(Node_Number) = Node_P1_IO_Mode(Node_Number) Or &H2 Node_P1_Data(Node_Number) = Node_P1_Data(Node_Number) Or &H2 Else Node_P1_IO_Mode(Node_Number) = Node_P1_IO_Mode(Node_Number) And &HFD End If ' IO_mode_draw ' End Sub Private Sub Check3_Click() ' If Check3.Value = 1 Then ' P1.2 Data Direction 1-> Input 0-> Output Node_P1_IO_Mode(Node_Number) = Node_P1_IO_Mode(Node_Number) Or &H4 Node_P1_Data(Node_Number) = Node_P1_Data(Node_Number) Or &H4 Else Node_P1_IO_Mode(Node_Number) = Node_P1_IO_Mode(Node_Number) And &HFB End If ' IO_mode_draw ' End Sub Private Sub Check4_Click() ' If Check4.Value = 1 Then ' P1.3 Data Direction 1-> Input 0-> Output Node_P1_IO_Mode(Node_Number) = Node_P1_IO_Mode(Node_Number) Or &H8 Node_P1_Data(Node_Number) = Node_P1_Data(Node_Number) Or &H8 Else Node_P1_IO_Mode(Node_Number) = Node_P1_IO_Mode(Node_Number) And &HF7 End If ' IO_mode_draw ' End Sub Private Sub Check5_Click() ' If Check5.Value = 1 Then ' P1.4 Data Direction 1-> Input 0-> Output Node_P1_IO_Mode(Node_Number) = Node_P1_IO_Mode(Node_Number) Or &H10 Node_P1_Data(Node_Number) = Node_P1_Data(Node_Number) Or &H10 Else Node_P1_IO_Mode(Node_Number) = Node_P1_IO_Mode(Node_Number) And &HEF End If ' IO_mode_draw ' End Sub Private Sub Check6_Click() ' If Check6.Value = 1 Then ' P1.5 Data Direction 1-> Input 0-> Output Node_P1_IO_Mode(Node_Number) = Node_P1_IO_Mode(Node_Number) Or &H20 Node_P1_Data(Node_Number) = Node_P1_Data(Node_Number) Or &H20 Else Node_P1_IO_Mode(Node_Number) = Node_P1_IO_Mode(Node_Number) And &HDF End If ' IO_mode_draw ' End Sub Private Sub Check7_Click() ' If Check7.Value = 1 Then ' P1.6 Data Direction 1-> Input 0-> Output Node_P1_IO_Mode(Node_Number) = Node_P1_IO_Mode(Node_Number) Or &H40 Node_P1_Data(Node_Number) = Node_P1_Data(Node_Number) Or &H40 Else Node_P1_IO_Mode(Node_Number) = Node_P1_IO_Mode(Node_Number) And &HBF End If ' IO_mode_draw ' End Sub Private Sub Check8_Click() ' If Check8.Value = 1 Then ' P1.7 Data Direction 1-> Input 0-> Output Node_P1_IO_Mode(Node_Number) = Node_P1_IO_Mode(Node_Number) Or &H80 Node_P1_Data(Node_Number) = Node_P1_Data(Node_Number) Or &H80 Else Node_P1_IO_Mode(Node_Number) = Node_P1_IO_Mode(Node_Number) And &H7F End If ' IO_mode_draw ' End Sub Private Sub Check9_Click() ' If Check9.Value = 1 Then ' P0.0 Data Direction 1-> Input 0-> Output Node_P0_IO_Mode(Node_Number) = Node_P0_IO_Mode(Node_Number) Or &H1 Node_P0_Data(Node_Number) = Node_P0_Data(Node_Number) Or &H1 Else Node_P0_IO_Mode(Node_Number) = Node_P0_IO_Mode(Node_Number) And &HFE End If ' IO_mode_draw ' End Sub Private Sub Check10_Click() ' If Check10.Value = 1 Then ' P0.1 Data Direction 1-> Input 0-> Output Node_P0_IO_Mode(Node_Number) = Node_P0_IO_Mode(Node_Number) Or &H2 Node_P0_Data(Node_Number) = Node_P0_Data(Node_Number) Or &H2 Else Node_P0_IO_Mode(Node_Number) = Node_P0_IO_Mode(Node_Number) And &HFD End If ' IO_mode_draw ' End Sub Private Sub Check11_Click() ' If Check11.Value = 1 Then ' P0.2 Data Direction 1-> Input 0-> Output Node_P0_IO_Mode(Node_Number) = Node_P0_IO_Mode(Node_Number) Or &H4 Node_P0_Data(Node_Number) = Node_P0_Data(Node_Number) Or &H4 Else Node_P0_IO_Mode(Node_Number) = Node_P0_IO_Mode(Node_Number) And &HFB End If ' IO_mode_draw ' End Sub Private Sub Check12_Click() ' If Check12.Value = 1 Then ' P0.3 Data Direction 1-> Input 0-> Output Node_P0_IO_Mode(Node_Number) = Node_P0_IO_Mode(Node_Number) Or &H8 Node_P0_Data(Node_Number) = Node_P0_Data(Node_Number) Or &H8 Else Node_P0_IO_Mode(Node_Number) = Node_P0_IO_Mode(Node_Number) And &HF7 End If ' IO_mode_draw ' End Sub Private Sub Check13_Click() ' If Check13.Value = 1 Then ' P0.4 Data Direction 1-> Input 0-> Output Node_P0_IO_Mode(Node_Number) = Node_P0_IO_Mode(Node_Number) Or &H10 Node_P0_Data(Node_Number) = Node_P0_Data(Node_Number) Or &H10 Else Node_P0_IO_Mode(Node_Number) = Node_P0_IO_Mode(Node_Number) And &HEF End If ' IO_mode_draw ' End Sub Private Sub Check14_Click() ' If Check14.Value = 1 Then ' P0.5 Data Direction 1-> Input 0-> Output Node_P0_IO_Mode(Node_Number) = Node_P0_IO_Mode(Node_Number) Or &H20 Node_P0_Data(Node_Number) = Node_P0_Data(Node_Number) Or &H20 Else Node_P0_IO_Mode(Node_Number) = Node_P0_IO_Mode(Node_Number) And &HDF End If ' IO_mode_draw ' End Sub Private Sub Check15_Click() ' If Check15.Value = 1 Then ' P0.6 Data Direction 1-> Input 0-> Output Node_P0_IO_Mode(Node_Number) = Node_P0_IO_Mode(Node_Number) Or &H40 Node_P0_Data(Node_Number) = Node_P0_Data(Node_Number) Or &H40 Else Node_P0_IO_Mode(Node_Number) = Node_P0_IO_Mode(Node_Number) And &HBF End If ' IO_mode_draw ' End Sub Private Sub Check16_Click() ' If Check16.Value = 1 Then ' P0.7 Data Direction 1-> Input 0-> Output Node_P0_IO_Mode(Node_Number) = Node_P0_IO_Mode(Node_Number) Or &H80 Node_P0_Data(Node_Number) = Node_P0_Data(Node_Number) Or &H80 Else Node_P0_IO_Mode(Node_Number) = Node_P0_IO_Mode(Node_Number) And &H7F End If ' IO_mode_draw ' End Sub Private Sub Check17_Click() ' If Check17.Value = 1 Then ' P2.0 Data Direction 1-> Input 0-> Output Node_P2_IO_Mode(Node_Number) = Node_P2_IO_Mode(Node_Number) Or &H1 Node_P2_Data(Node_Number) = Node_P2_Data(Node_Number) Or &H1 Else Node_P2_IO_Mode(Node_Number) = Node_P2_IO_Mode(Node_Number) And &HFE End If ' IO_mode_draw ' End Sub Private Sub Check18_Click() ' If Check18.Value = 1 Then ' P2.1 Data Direction 1-> Input 0-> Output Node_P2_IO_Mode(Node_Number) = Node_P2_IO_Mode(Node_Number) Or &H2 Node_P2_Data(Node_Number) = Node_P2_Data(Node_Number) Or &H2 Else Node_P2_IO_Mode(Node_Number) = Node_P2_IO_Mode(Node_Number) And &HFD End If ' IO_mode_draw ' End Sub Private Sub Check19_Click() ' If Check19.Value = 1 Then ' P2.2 Data Direction 1-> Input 0-> Output Node_P2_IO_Mode(Node_Number) = Node_P2_IO_Mode(Node_Number) Or &H4 Node_P2_Data(Node_Number) = Node_P2_Data(Node_Number) Or &H4 Else Node_P2_IO_Mode(Node_Number) = Node_P2_IO_Mode(Node_Number) And &HFB End If ' IO_mode_draw ' End Sub Private Sub Check20_Click() ' If Check20.Value = 1 Then ' P2.3 Data Direction 1-> Input 0-> Output Node_P2_IO_Mode(Node_Number) = Node_P2_IO_Mode(Node_Number) Or &H8 Node_P2_Data(Node_Number) = Node_P2_Data(Node_Number) Or &H8 Else Node_P2_IO_Mode(Node_Number) = Node_P2_IO_Mode(Node_Number) And &HF7 End If ' IO_mode_draw ' End Sub Private Sub Check21_Click() ' If Check21.Value = 1 Then ' P2.4 Data Direction 1-> Input 0-> Output Node_P2_IO_Mode(Node_Number) = Node_P2_IO_Mode(Node_Number) Or &H10 Node_P2_Data(Node_Number) = Node_P2_Data(Node_Number) Or &H10 Else Node_P2_IO_Mode(Node_Number) = Node_P2_IO_Mode(Node_Number) And &HEF End If ' IO_mode_draw ' End Sub Private Sub Check22_Click() ' If Check22.Value = 1 Then ' P2.5 Data Direction 1-> Input 0-> Output Node_P2_IO_Mode(Node_Number) = Node_P2_IO_Mode(Node_Number) Or &H20 Node_P2_Data(Node_Number) = Node_P2_Data(Node_Number) Or &H20 Else Node_P2_IO_Mode(Node_Number) = Node_P2_IO_Mode(Node_Number) And &HDF End If ' IO_mode_draw ' End Sub Private Sub Check23_Click() ' If Check23.Value = 1 Then ' P2.6 Data Direction 1-> Input 0-> Output Node_P2_IO_Mode(Node_Number) = Node_P2_IO_Mode(Node_Number) Or &H40 Node_P2_Data(Node_Number) = Node_P2_Data(Node_Number) Or &H40 Else Node_P2_IO_Mode(Node_Number) = Node_P2_IO_Mode(Node_Number) And &HBF End If ' IO_mode_draw ' End Sub Private Sub Check24_Click() ' If Check24.Value = 1 Then ' P2.7 Data Direction 1-> Input 0-> Output Node_P2_IO_Mode(Node_Number) = Node_P2_IO_Mode(Node_Number) Or &H80 Node_P2_Data(Node_Number) = Node_P2_Data(Node_Number) Or &H80 Else Node_P2_IO_Mode(Node_Number) = Node_P2_IO_Mode(Node_Number) And &H7F End If ' IO_mode_draw ' End Sub ' Private Sub Command1_Click() If (Not (Node_P1_IO_Mode(Node_Number)) And &H1) Then Node_P1_Data(Node_Number) = ((Not Node_P1_Data(Node_Number)) And &H1) Or (Node_P1_Data(Node_Number) And &HFE) End If End Sub Private Sub Command2_Click() If (Not (Node_P1_IO_Mode(Node_Number)) And &H2) Then Node_P1_Data(Node_Number) = ((Not Node_P1_Data(Node_Number)) And &H2) Or (Node_P1_Data(Node_Number) And &HFD) End If End Sub Private Sub Command3_Click() If (Not (Node_P1_IO_Mode(Node_Number)) And &H4) Then Node_P1_Data(Node_Number) = ((Not Node_P1_Data(Node_Number)) And &H4) Or (Node_P1_Data(Node_Number) And &HFB) End If End Sub Private Sub Command4_Click() If (Not (Node_P1_IO_Mode(Node_Number)) And &H8) Then Node_P1_Data(Node_Number) = ((Not Node_P1_Data(Node_Number)) And &H8) Or (Node_P1_Data(Node_Number) And &HF7) End If End Sub Private Sub Command5_Click() If (Not (Node_P1_IO_Mode(Node_Number)) And &H10) Then Node_P1_Data(Node_Number) = ((Not Node_P1_Data(Node_Number)) And &H10) Or (Node_P1_Data(Node_Number) And &HEF) End If End Sub Private Sub Command6_Click() If (Not (Node_P1_IO_Mode(Node_Number)) And &H20) Then Node_P1_Data(Node_Number) = ((Not Node_P1_Data(Node_Number)) And &H20) Or (Node_P1_Data(Node_Number) And &HDF) End If End Sub Private Sub Command7_Click() If (Not (Node_P1_IO_Mode(Node_Number)) And &H40) Then Node_P1_Data(Node_Number) = ((Not Node_P1_Data(Node_Number)) And &H40) Or (Node_P1_Data(Node_Number) And &HBF) End If End Sub Private Sub Command8_Click() If (Not (Node_P1_IO_Mode(Node_Number)) And &H80) Then Node_P1_Data(Node_Number) = ((Not Node_P1_Data(Node_Number)) And &H80) Or (Node_P1_Data(Node_Number) And &H7F) End If End Sub Private Sub Command9_Click() If (Not (Node_P0_IO_Mode(Node_Number)) And &H1) Then Node_P0_Data(Node_Number) = ((Not Node_P0_Data(Node_Number)) And &H1) Or (Node_P0_Data(Node_Number) And &HFE) End If End Sub Private Sub Command10_Click() If (Not (Node_P0_IO_Mode(Node_Number)) And &H2) Then Node_P0_Data(Node_Number) = ((Not Node_P0_Data(Node_Number)) And &H2) Or (Node_P0_Data(Node_Number) And &HFD) End If End Sub Private Sub Command11_Click() If (Not (Node_P0_IO_Mode(Node_Number)) And &H4) Then Node_P0_Data(Node_Number) = ((Not Node_P0_Data(Node_Number)) And &H4) Or (Node_P0_Data(Node_Number) And &HFB) End If End Sub Private Sub Command12_Click() If (Not (Node_P0_IO_Mode(Node_Number)) And &H8) Then Node_P0_Data(Node_Number) = ((Not Node_P0_Data(Node_Number)) And &H8) Or (Node_P0_Data(Node_Number) And &HF7) End If End Sub Private Sub Command13_Click() If (Not (Node_P0_IO_Mode(Node_Number)) And &H10) Then Node_P0_Data(Node_Number) = ((Not Node_P0_Data(Node_Number)) And &H10) Or (Node_P0_Data(Node_Number) And &HEF) End If End Sub Private Sub Command14_Click() If (Not (Node_P0_IO_Mode(Node_Number)) And &H20) Then Node_P0_Data(Node_Number) = ((Not Node_P0_Data(Node_Number)) And &H20) Or (Node_P0_Data(Node_Number) And &HDF) End If End Sub Private Sub Command15_Click() If (Not (Node_P0_IO_Mode(Node_Number)) And &H40) Then Node_P0_Data(Node_Number) = ((Not Node_P0_Data(Node_Number)) And &H40) Or (Node_P0_Data(Node_Number) And &HBF) End If End Sub Private Sub Command16_Click() If (Not (Node_P0_IO_Mode(Node_Number)) And &H80) Then Node_P0_Data(Node_Number) = ((Not Node_P0_Data(Node_Number)) And &H80) Or (Node_P0_Data(Node_Number) And &H7F) End If End Sub Private Sub Command17_Click() If (Not (Node_P2_IO_Mode(Node_Number)) And &H1) Then Node_P2_Data(Node_Number) = ((Not Node_P2_Data(Node_Number)) And &H1) Or (Node_P2_Data(Node_Number) And &HFE) End If End Sub Private Sub Command18_Click() If (Not (Node_P2_IO_Mode(Node_Number)) And &H2) Then Node_P2_Data(Node_Number) = ((Not Node_P2_Data(Node_Number)) And &H2) Or (Node_P2_Data(Node_Number) And &HFD) End If End Sub Private Sub Command19_Click() If (Not (Node_P2_IO_Mode(Node_Number)) And &H4) Then Node_P2_Data(Node_Number) = ((Not Node_P2_Data(Node_Number)) And &H4) Or (Node_P2_Data(Node_Number) And &HFB) End If End Sub Private Sub Command20_Click() If (Not (Node_P2_IO_Mode(Node_Number)) And &H8) Then Node_P2_Data(Node_Number) = ((Not Node_P2_Data(Node_Number)) And &H8) Or (Node_P2_Data(Node_Number) And &HF7) End If End Sub Private Sub Command21_Click() If (Not (Node_P2_IO_Mode(Node_Number)) And &H10) Then Node_P2_Data(Node_Number) = ((Not Node_P2_Data(Node_Number)) And &H10) Or (Node_P2_Data(Node_Number) And &HEF) End If End Sub Private Sub Command22_Click() If (Not (Node_P2_IO_Mode(Node_Number)) And &H20) Then Node_P2_Data(Node_Number) = ((Not Node_P2_Data(Node_Number)) And &H20) Or (Node_P2_Data(Node_Number) And &HDF) End If End Sub Private Sub Command23_Click() If (Not (Node_P2_IO_Mode(Node_Number)) And &H40) Then Node_P2_Data(Node_Number) = ((Not Node_P2_Data(Node_Number)) And &H40) Or (Node_P2_Data(Node_Number) And &HBF) End If End Sub Private Sub Command24_Click() If (Not (Node_P2_IO_Mode(Node_Number)) And &H80) Then Node_P2_Data(Node_Number) = ((Not Node_P2_Data(Node_Number)) And &H80) Or (Node_P2_Data(Node_Number) And &H7E) End If End Sub ' Private Sub Form_Load() ' state = 0 ' For I = 1 To 7 Node_P1_IO_Mode(I) = &HFF ' Port 1 Data Direction 1 -> Input, 0-> Output Node_P1_Data(I) = &HFF ' Port 1 Node Data 1 -> Off , 0 -> On Node_P0_IO_Mode(I) = &HFF ' Port 0 Data Direction 1 -> Input, 0-> Output Node_P0_Data(I) = &HFF ' Port 0 Node Data 1 -> Off , 0 -> On Node_P2_IO_Mode(I) = &HFF ' Port 2 Data Direction 1 -> Input, 0-> Output Node_P2_Data(I) = &HFF ' Port 2 Node Data 1 -> Off , 0 -> On Next I ' MSComm1.RTSEnable = False ' Listenning Mode MSComm1.PortOpen = True ' Port Open MSComm1.Settings = "2400,n,8,1" ' Power Line Modem Baud Rate MSComm1.RTSEnable = False ' Listenning Mode Node_Number = 1 IO_mode_draw End Sub Private Sub Option1_Click() Node_Number = 1 IO_mode_draw End Sub Private Sub Option2_Click() Node_Number = 2 IO_mode_draw End Sub Private Sub Option3_Click() Node_Number = 3 IO_mode_draw End Sub Private Sub Option4_Click() Node_Number = 4 IO_mode_draw End Sub Private Sub Option5_Click() Node_Number = 5 IO_mode_draw End Sub Private Sub Option6_Click() Node_Number = 6 IO_mode_draw End Sub Private Sub Option7_Click() Node_Number = 7 IO_mode_draw End Sub Private Sub Timer1_Timer() ' Dim I As Integer If state = 0 Then MSComm1.RTSEnable = True ' Transmite Mode ' Work_String = "00" + Hex(Node_Number) ' 2 Bytes Node Number (00 ~ FF) Command_String = Right(Work_String, 2) ' Work_String = "00" + Hex(Node_P1_Data(Node_Number) Or Node_P1_IO_Mode(Node_Number)) ' Port 1 Toggle Data Command_String = Command_String + Right(Work_String, 2) ' Work_String = "00" + Hex(Node_P0_Data(Node_Number) Or Node_P0_IO_Mode(Node_Number)) ' Port 0 Toggle Data Command_String = Command_String + Right(Work_String, 2) ' Work_String = "00" + Hex(Node_P2_Data(Node_Number) Or Node_P2_IO_Mode(Node_Number)) ' Port 2 Toggle Data Command_String = Command_String + Right(Work_String, 2) ' Check_Sum = 0 ' Calculate Check Sum For I = 1 To 8 Check_Sum = Check_Sum + Asc(Mid(Command_String, I, 1)) Next I ' Work_String = "00" + Hex(Check_Sum) Preamble_String = Chr(&HFF) + Chr(&HAA) + "TTTTT" + ":" Command_String = Command_String + Right(Work_String, 2) MSComm1.Output = Preamble_String + Command_String PLC.Caption = Command_String End If If state = 1 Then MSComm1.RTSEnable = False ' Receive Mode 'End If 'If state = 2 Then In_String = MSComm1.Input PLC.Caption = PLC.Caption + " " + In_String '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ L = Len(In_String) L = L + 1 ' For J = 1 To L Work_String = Mid(In_String, J, 4) If (Work_String = "RRR:") Then ' Check_Sum = 0 Check_Sum = Check_Sum + Asc(Mid(In_String, J + 4, 1)) Check_Sum = Check_Sum + Asc(Mid(In_String, J + 5, 1)) Check_Sum = Check_Sum + Asc(Mid(In_String, J + 6, 1)) Check_Sum = Check_Sum + Asc(Mid(In_String, J + 7, 1)) Check_Sum = Check_Sum + Asc(Mid(In_String, J + 8, 1)) Check_Sum = Check_Sum + Asc(Mid(In_String, J + 9, 1)) Check_Sum = Check_Sum + Asc(Mid(In_String, J + 10, 1)) Check_Sum = Check_Sum + Asc(Mid(In_String, J + 11, 1)) ' OptionCom1.Caption = Hex(Check_Sum) Port_1_Data = Val("&H" + Mid(In_String, J + 6, 2)) Port_0_Data = Val("&H" + Mid(In_String, J + 8, 2)) Port_2_Data = Val("&H" + Mid(In_String, J + 10, 2)) Port_Data_Display End If Next J '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ End If state = state + 1 state = state And &H1 End Sub Sub Port_Data_Display() ' If (Port_1_Data And &H1) Then '================== P1.0 Command1.Caption = "OFF" Else Command1.Caption = "ON" End If ' If (Port_1_Data And &H2) Then '================== P1.1 Command2.Caption = "OFF" Else Command2.Caption = "ON" End If ' If (Port_1_Data And &H4) Then '================== P1.2 Command3.Caption = "OFF" Else Command3.Caption = "ON" End If ' If (Port_1_Data And &H8) Then '================== P1.3 Command4.Caption = "OFF" Else Command4.Caption = "ON" End If ' If (Port_1_Data And &H10) Then '================== P1.4 Command5.Caption = "OFF" Else Command5.Caption = "ON" End If ' If (Port_1_Data And &H20) Then '================== P1.5 Command6.Caption = "OFF" Else Command6.Caption = "ON" End If ' If (Port_1_Data And &H40) Then '================== P1.6 Command7.Caption = "OFF" Else Command7.Caption = "ON" End If ' If (Port_1_Data And &H80) Then '================== P1.7 Command8.Caption = "OFF" Else Command8.Caption = "ON" End If ' If (Port_0_Data And &H1) Then '================== P0.0 Command9.Caption = "OFF" Else Command9.Caption = "ON" End If ' If (Port_0_Data And &H2) Then '================== P0.1 Command10.Caption = "OFF" Else Command10.Caption = "ON" End If ' If (Port_0_Data And &H4) Then '================== P0.2 Command11.Caption = "OFF" Else Command11.Caption = "ON" End If ' If (Port_0_Data And &H8) Then '================== P0.3 Command12.Caption = "OFF" Else Command12.Caption = "ON" End If ' If (Port_0_Data And &H10) Then '================== P0.4 Command13.Caption = "OFF" Else Command13.Caption = "ON" End If ' If (Port_0_Data And &H20) Then '================== P0.5 Command14.Caption = "OFF" Else Command14.Caption = "ON" End If ' If (Port_0_Data And &H40) Then '================== P0.6 Command15.Caption = "OFF" Else Command15.Caption = "ON" End If ' If (Port_0_Data And &H80) Then '================== P0.7 Command16.Caption = "OFF" Else Command16.Caption = "ON" End If ' If (Port_2_Data And &H1) Then '================== P2.0 Command17.Caption = "OFF" Else Command17.Caption = "ON" End If ' If (Port_2_Data And &H2) Then '================== P2.1 Command18.Caption = "OFF" Else Command18.Caption = "ON" End If ' If (Port_2_Data And &H4) Then '================== P2.2 Command19.Caption = "OFF" Else Command19.Caption = "ON" End If ' If (Port_2_Data And &H8) Then '================== P2.3 Command20.Caption = "OFF" Else Command20.Caption = "ON" End If ' If (Port_2_Data And &H10) Then '================== P2.4 Command21.Caption = "OFF" Else Command21.Caption = "ON" End If ' If (Port_2_Data And &H20) Then '================== P2.5 Command22.Caption = "OFF" Else Command22.Caption = "ON" End If ' If (Port_2_Data And &H40) Then '================== P2.6 Command23.Caption = "OFF" Else Command23.Caption = "ON" End If ' If (Port_2_Data And &H80) Then '================== P2.7 Command24.Caption = "OFF" Else Command24.Caption = "ON" End If ' ' End Sub