1、打开博图软件,点击设备添加1214C CPU。双击网口,弹出属性对话框,设置以太网IP地址
2、点击程序块,在Main程序里添加开放式通信指令块1、TCON(建立通信连接)2、TSEND(通过现有的通信发送数据)3、TRCV(通过现有的通信接收数据)
3、添加TCON(建立通信连接)指令块,用鼠标点击后拖放到程序段里。
4、TCON属性设置,点击指令块右上角开始组态图标弹出属性对话框。属性框的连接参数设置,1、指定连接类型为TCP2、伙伴为主动连接(客户端),点击连接的数据块建立一个数据块3、本地的端口设备(1200默认为2000,没作修改)4、添加建立通信连接的条件。此处用的是常通条件。5、连接的数据块,填写属性设置里自动建立的数据块
5、添加TRCV(通过现有的通信接收数据)指令块。注意2点,1、接收数据的条件2、接到的数据存放的数据块地址(新建一个新的数据块)3、修改数据的类型及接收数据的长度
6、添加TSEND(通过现有的通信发送数据)1、发送数据的条件2、发送数据的数据块地址(此处用的是接收的数据块)
7、添加 输出程序做测试。
8、VB6.0侧程序1、新建 一个新的程序2、把窗口的名称修改成frmClient3、点击菜单栏里的工程|部件|microsoftwinsockcontrol 5.0.点击它 按放在form窗体上就可以了4、添加2个文本框 Text1 和Text2 和 两个Labe 分别改为服务器IP和端口号
9、添加发送数据文本框改名为txtSend2、添加接收数据文本框改名为txtOutput3、添加 发送Command1和 清空 按钮Command24、添加图形符号作指示灯Shape4 -Shape115、添加8个按钮改名为button1-button86、添加一个连接按钮改名为cmdConnect7、添加一个退出按钮Command5
10、程序分析Private Sub button1_Click() '按钮1-8程序txtSend.Text = "10000000"tcpClient.SendData txtSend.TextEnd SubPrivate Sub button2_Click()txtSend.Text = "01000000"tcpClient.SendData txtSend.TextEnd SubPrivate Sub button3_Click()txtSend.Text = "00100000"tcpClient.SendData txtSend.TextEnd SubPrivate Sub button4_Click()txtSend.Text = "00010000"tcpClient.SendData txtSend.TextEnd SubPrivate Sub button5_Click()txtSend.Text = "00001000"tcpClient.SendData txtSend.TextEnd SubPrivate Sub button6_Click()txtSend.Text = "00000100"tcpClient.SendData txtSend.TextEnd SubPrivate Sub button7_Click()txtSend.Text = "00000010"tcpClient.SendData txtSend.TextEnd SubPrivate Sub button8_Click()txtSend.Text = "00000001"tcpClient.SendData txtSend.TextEnd SubPrivate Sub Command1_Click() ‘按下发送按钮 把txtSend的内容发出'tcpClient.SendData txtSend.TexttxtSend.Text = ""End SubPrivate Sub Command2_Click() ‘按下清空按钮 把txtSend的内容清空txtOutput = ""End SubPrivate Sub cmdConnect_Click() '按下连接按钮tcpClient.RemoteHost = Text1.Text '读取Text1内的IP。tcpClient.RemotePort = Val(Text2.Text) '读取Text2内的端口号。tcpClient.ConnectLabel6.Caption = "链接打开"Label6.FontSize = 12Label6.ForeColor = vbBluecmdConnect.Enabled = FalseOpen "e:\TCP\ip.txt" For Output As #1 '按下连接按钮后把IP存到e:\TCP\ip.txt的文件夹内Print #1, Text1.TextClose #1End SubPrivate Sub Command5_Click() '按下退出按钮 退出程序Unload MeEnd SubPrivate Sub tcpClient_DataArrival _ '数据接收(ByVal bytesTotal As Long)Dim strData As StringtcpClient.GetData strDatatxtOutput.Text = strData + vbCrLfEnd SubPrivate Sub Form_Unload(Cancel As Integer) '关闭窗口时先关闭socket tcpClient.CloseEnd SubPrivate Sub Form_load() '窗口打开把e:\TCP\ip.txt文件内的IP给Text1 If Text1.Text = "" Then Open "e:\TCP\ip.txt" For Input As #1Text1.Text = Input(LOF(1), 1)Close #1 End If End SubPrivate Sub txtOutput_Change() '把接收到的数据 拆分 对应该8个指示灯Dim x1 As LongDim y1, y2, y3, y4, y5, y6, y7, y8 As LongIf txtOutput.Text <> "" Thenx1 = txtOutput.TextElsex1 = 0End Ify1 = x1 \ 10000000y2 = (x1 Mod 10000000) \ 1000000y3 = ((x1 Mod 10000000) Mod 1000000) \ 100000y4 = (((x1 Mod 10000000) Mod 1000000) Mod 100000) \ 10000y5 = ((((x1 Mod 10000000) Mod 1000000) Mod 100000) Mod 10000) \ 1000y6 = (((((x1 Mod 10000000) Mod 1000000) Mod 100000) Mod 10000) Mod 1000) \ 100y7 = ((((((x1 Mod 10000000) Mod 1000000) Mod 100000) Mod 10000) Mod 1000) Mod 100) \ 10y8 = ((((((x1 Mod 10000000) Mod 1000000) Mod 100000) Mod 10000) Mod 1000) Mod 100) Mod 10If y1 = 1 Then '指示灯的状态改变Shape4.FillColor = vbGreenbutton1.BackColor = vbGreenElseShape4.FillColor = vbWhitebutton1.BackColor = vbWhiteEnd IfIf y2 = 1 ThenShape5.FillColor = vbGreenbutton2.BackColor = vbGreenElseShape5.FillColor = vbWhitebutton2.BackColor = vbWhiteEnd IfIf y3 = 1 ThenShape6.FillColor = vbGreenbutton3.BackColor = vbGreenElseShape6.FillColor = vbWhitebutton3.BackColor = vbWhiteEnd IfIf y4 = 1 ThenShape7.FillColor = vbGreenbutton4.BackColor = vbGreenElseShape7.FillColor = vbWhitebutton4.BackColor = vbWhiteEnd IfIf y5 = 1 ThenShape8.FillColor = vbGreenbutton5.BackColor = vbGreenElseShape8.FillColor = vbWhitebutton5.BackColor = vbWhiteEnd IfIf y6 = 1 ThenShape9.FillColor = vbGreenbutton6.BackColor = vbGreenElseShape9.FillColor = vbWhitebutton6.BackColor = vbWhiteEnd IfIf y7 = 1 ThenShape10.FillColor = vbGreenbutton7.BackColor = vbGreenElseShape10.FillColor = vbWhitebutton7.BackColor = vbWhiteEnd IfIf y8 = 1 ThenShape11.FillColor = vbGreenbutton8.BackColor = vbGreenElseShape11.FillColor = vbWhitebutton8.BackColor = vbWhiteEnd IfEnd SubPrivate Sub Command3_Click() ' 把文件夹内的IP读到Text3中Open "e:\TCP\ip.txt" For Input As #1Text3.Text = Input(LOF(1), 1)'Print #1, ""Close #1Dim AA = Split(Text3.Text)End SubPrivate Sub Command4_Click() ' 读多行数据放到list中Dim SS$() Dim A$, i%List1.ClearOpen "e:\test\testdata.txt" For Input As #1While Not EOF(1)Line Input #1, A$ '可以考虑行读入List1.AddItem A$WendCloseReDim SS(List1.ListCount)For i = 0 To List1.ListCount - 1SS(i) = List1.List(i)NextEnd Sub