VERSION 5.00 Object = "{648A5603-2C6E-101B-82B6-000000000014}#1.1#0"; "MSCOMM32.OCX" Begin VB.Form Form1 Caption = "MMRS485" ClientHeight = 6645 ClientLeft = 60 ClientTop = 450 ClientWidth = 8115 LinkTopic = "Form1" ScaleHeight = 6645 ScaleWidth = 8115 StartUpPosition = 3 'Windows の既定値 Begin VB.TextBox Text10 Height = 270 Left = 2160 TabIndex = 26 Text = "9" Top = 600 Width = 495 End Begin MSCommLib.MSComm MSComm1 Left = 6360 Top = 240 _ExtentX = 1005 _ExtentY = 1005 _Version = 393216 DTREnable = -1 'True RThreshold = 1 End Begin VB.Frame Frame4 Caption = "スレーブ#3" Height = 2535 Left = 4200 TabIndex = 4 Top = 3720 Width = 3735 Begin VB.TextBox Text9 Height = 1455 Left = 240 TabIndex = 24 Text = "応答メッセージ" Top = 840 Width = 3255 End Begin VB.TextBox Text4 Height = 270 Left = 480 TabIndex = 12 Text = "Text1" Top = 360 Width = 495 End Begin VB.Label Label5 Caption = "ID" Height = 255 Left = 120 TabIndex = 11 Top = 360 Width = 255 End End Begin VB.Frame Frame3 Caption = "スレーブ#2" Height = 2655 Left = 600 TabIndex = 3 Top = 3600 Width = 3375 Begin VB.TextBox Text8 Height = 1575 Left = 120 TabIndex = 23 Text = "応答メッセージ" Top = 840 Width = 3015 End Begin VB.TextBox Text3 Height = 270 Left = 480 TabIndex = 10 Text = "Text1" Top = 360 Width = 495 End Begin VB.Label Label4 Caption = "ID" Height = 255 Left = 120 TabIndex = 9 Top = 360 Width = 255 End End Begin VB.Frame Frame2 Caption = "スレーブ#1" Height = 2415 Left = 4200 TabIndex = 2 Top = 960 Width = 3735 Begin VB.TextBox Text7 Height = 1335 Left = 240 TabIndex = 22 Text = "応答メッセージ" Top = 840 Width = 3255 End Begin VB.TextBox Text2 Height = 270 Left = 480 TabIndex = 8 Text = "Text1" Top = 240 Width = 495 End Begin VB.Label Label3 Caption = "ID" Height = 255 Left = 120 TabIndex = 7 Top = 240 Width = 255 End End Begin VB.Frame Frame1 Caption = "マスタ" Height = 2535 Left = 600 TabIndex = 1 Top = 840 Width = 3375 Begin VB.TextBox Text11 Height = 270 Left = 1200 TabIndex = 27 Text = "応答メッセージ" Top = 1080 Width = 1935 End Begin VB.TextBox Text6 Height = 270 Left = 1200 TabIndex = 21 Text = "WRITE DATA" Top = 2040 Width = 1935 End Begin VB.TextBox Text5 Height = 270 Left = 1200 TabIndex = 20 Text = "READ DATA" Top = 1560 Width = 1935 End Begin VB.OptionButton Option4 Caption = "WRITE" Height = 255 Left = 120 TabIndex = 19 Top = 1920 Width = 975 End Begin VB.OptionButton Option3 Caption = "READ" Height = 255 Left = 120 TabIndex = 18 Top = 1560 Width = 975 End Begin VB.OptionButton Option2 Caption = "RESET" Height = 375 Left = 120 TabIndex = 17 Top = 1080 Width = 1215 End Begin VB.OptionButton Option1 Caption = "PING" Height = 255 Left = 120 TabIndex = 16 Top = 720 Width = 855 End Begin VB.CommandButton Command1 Caption = "発行" Height = 375 Left = 1080 TabIndex = 15 Top = 600 Width = 615 End Begin VB.ComboBox Combo1 Height = 300 Left = 1920 TabIndex = 14 Text = "SLAVE ADDRESS" Top = 240 Width = 1335 End Begin VB.TextBox Text1 Height = 270 Left = 480 TabIndex = 6 Text = "Text1" Top = 240 Width = 495 End Begin VB.Label Label6 Caption = "送信先" Height = 255 Left = 1200 TabIndex = 13 Top = 240 Width = 615 End Begin VB.Label Label1 Caption = "ID" Height = 255 Left = 120 TabIndex = 5 Top = 240 Width = 255 End End Begin VB.Label Label7 Caption = "COMポート番号" Height = 255 Left = 600 TabIndex = 25 Top = 600 Width = 1455 End Begin VB.Label Label2 Caption = "マルチモニタRS485ネットワーク" BeginProperty Font Name = "MS Pゴシック" Size = 15.75 Charset = 128 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 375 Left = 1440 TabIndex = 0 Top = 120 Width = 4215 End End Attribute VB_Name = "Form1" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Dim ComPortNum As Integer Dim NameDD$(3, 4) Dim SW(3), SA(4) Dim inbuf() As Byte Dim MA, ID As Integer Private Sub Command1_Click() '発行 If checkID(ID) Then If Option1.Value Then CMND = &HC1 ' PING ElseIf Option2.Value Then CMND = &HC2 ' RESET ElseIf Option3.Value Then CMND = &HC3 ' READ ElseIf Option4.Value Then CMND = &HC4 ' WRITE Else Text11.Text = "コマンドエラー" Exit Sub End If MSG$ = Text6.Text MSComm1.Output = CMND + ID + Len(MSG$) + MSG$ Else Text11.Text = "送信先エラー" End If End Sub
Private Sub Form_Load() SA(1) = 1 SA(2) = 2 SA(3) = 3 MA = 10 ID = 0 Combo1.AddItem "スレーブ#1" Combo1.AddItem "スレーブ#2" Combo1.AddItem "スレーブ#3" Text1.Text = Str(MA) Text2.Text = Str(SA(1)) Text3.Text = Str(SA(2)) Text4.Text = Str(SA(3)) On Error GoTo ErrorHandler ComPortNum = 9 Text10.Text = Str(ComPortNum) ' VScroll1.Value = 16 - ComPortNum MSComm1.CommPort = ComPortNum MSComm1.Settings = "38400,N,8,1" MSComm1.PortOpen = True stage = 1 MSComm1.Output = "C" Exit Sub ErrorHandler: If Err.Number = 8002 Then MSG = "通信ポートが開かれていません。通信ポートを接続して下さい。" MsgBox MSG ElseIf Err.Number = 0 Then MSG = "通信エラーです。" MsgBox MSG Else MSG = "原因不明のエラーです。エラー番号" + Str(Err.Number) MsgBox MSG End If End Sub Private Sub MSComm1_OnComm() If MSComm1.CommEvent > 1000 Then LenInBuf = MSComm1.InBufferCount inbuf = MSComm1.Input MSComm1.InBufferCount = 0 Text7.Text = inbuf Exit Sub End If If MSComm1.CommEvent = comEvReceive Then keyPressed = False If MSComm1.InBufferCount >= 1 Then LenInBuf = MSComm1.InBufferCount ' Label11.Caption = Str(LenInBuf) inbuf = MSComm1.Input Text11.Text = inbuf ID = inbuf(1) inbuf(1) = inbuf(1) + &H30 If ID = SA(1) Then Text7.Text = inbuf ElseIf ID = SA(2) Then Text8.Text = inbuf ElseIf ID = SA(3) Then Text9.Text = inbuf End If End If End If End Sub Private Function checkID(ID As Integer) As Boolean If ID = MA Then checkID = True ElseIf ID = SA(1) Then checkID = True ElseIf ID = SA(2) Then checkID = True ElseIf ID = SA(3) Then checkID = True Else checkID = False End If End Function |