


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Module PLCtoPCCall FCScheck(outdata) 发送帧length = UBound(outdata)ReDim Preserve outdata(0 To length) 据数组outdata_1 = BitConverter.ToString(outdata) frmParam.SerialPort1.Write(outdata, 0, outdata.Length) 帧frmPlc.ListBox1.Items.Add(outdata_1)End Sub指令 </param>Public outdata() As Byte'令数据Public
2、 Rcvlen As Integer'Public Rcv() As BytePublic inString As String'Public RcvFinFlag As Boolean'Public ReadFlag As Boolean'Public FinalDataLen As Integer'Public SaveString As String'Public P_duanFlag As BytePublic P2_duanFlag As BytePublic Rcvtemp As String'Public outdata_1
3、 As StringPublic Y(100) As Boolean''' <summary>''' 发送命令函数''' </summary>''' <param name="inString">''' <remarks></remarks>Public Sub send(inString As String)Dim length As ByteRcvlen = -1'length = L
4、en(inString)'ReDim outdata(0 To length)ReDim outdata(0 To length + 1) 元素个数为 length+1outdata(0) = &H2'outdata(length + 1) = &H3For i = 1 To length'送数组outdata(i) = Asc(Mid(inString, i, 1)Next i定义发送数组,用来存放转换后的命定义接收到的数据长度 定义接收数组,用来存放接收到的数据定义输入命令字符串定义接收完成标志标志定义读命令 定义接收到数据的最终长度变量 定义输入命
5、令暂存字符串变量定义存放每次接收到的数据的暂存接收数据存放数组的下标初始化求形参传递过来的字符串的长度重新定义发送数据数组,其命令报文以控制代码STX开始字符串转换为 ASCII 码,送入发产生校验和,形成重新定义发送数发送命令' 求和校验子程序Private Sub FCScheck(ByRef outdata() As Byte)Dim BufLen As Integer, Buf As String'长度变量和字符串变量Dim i As Integer'Dim CheckSum As Long'量BufLen = UBound(outdata)'组
6、可用最大下标CheckSum = 0 ' For i = LBound(outdata) + 1 To UBound(outdata) 括的控制代码CheckSum = (CheckSum + outdata(i) And &HFF) 数组的元素求和,只保留低位字节Next i定义字符串定义校验和变 求 outdata 数 初始化校验和求和时不包对 outdata' 若校验和只有一位,则高位添零,补足为 2Buf= IIf(Len(Hex(CheckSum)= 1, "0" & Hex(CheckSum), Hex(CheckSum)ReDi
7、m Preserve outdata(BufLen + 2)outdata(BufLen + 1) = Asc(Mid(Buf, 1, 1) ' 校验和转换为 ASCII 码,低位在前outdata(BufLen + 2) = Asc(Mid(Buf, 2, 1)End SubPrivate Sub Y0_Click(senderStatic Dim flag As BooleanIf flag = 0 Then inString = "70005" flag += 1Else inString = "80005" flag = 0End IfC
8、all send(inString) 'End SubAs Object, e As EventArgs) Handles Y0.Click调用发送子程序Private Sub Y1_Click(senderStatic Dim flag As BooleanIf flag = 0 Then inString = "70105" flag += 1ElseAs Object, e As EventArgs) Handles Y1.ClickinString = "80105"flag = 0End IfCall send(inString)End
9、 Sub调用发送子程序Private Sub Y2_Click(senderStatic Dim flag As BooleanIf flag = 0 Then inString = "70205" flag += 1Else inString = "80205" flag = 0End IfCall send(inString) 'End SubPrivate Sub Y3_Click(senderStatic Dim flag As BooleanIf flag = 0 Then inString = "70305" fl
10、ag += 1Else inString = "80305" flag = 0End IfCall send(inString) 'End SubPrivate Sub Y4_Click(senderStatic Dim flag As BooleanIf flag = 0 Then inString = "70405" flag += 1Else inString = "80405" flag = 0End IfCall send(inString) 'End SubPrivate Sub Y5_Click(send
11、erStatic Dim flag As BooleanIf flag = 0 Then inString = "70505"As Object, e As EventArgs) Handles调用发送子程序As Object, e As EventArgs) Handles调用发送子程序As Object, e As EventArgs) Handles调用发送子程序As Object, e As EventArgs) HandlesY2.ClickY3.ClickY4.ClickY5.Clickflag += 1ElseinString = "80505&qu
12、ot;flag = 0调用发送子程序End IfY6.ClickCall send(inString) End SubPrivate Sub Y6_Click(sender As Object, e As EventArgs) Handles Static Dim flag As BooleanIf flag = 0 Then inString = "70605" flag += 1Else inString = "80605" flag = 0End IfCall send(inString) ' 调用发送子程序End SubY7.ClickPrivate Sub Y7_Click(sender As Object, e As EventArgs) Handles Static Dim flag As
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论