利用VB进行PC与PCL通信代码(2)

2020-03-26 21:29

个人计算机(PC)与可编程控制器通信

weishu = 1 End If

awe1 = setad Mod 10 '用ListInAddr的末尾数与输入信号的末尾数进行比较计算 If Oct(Val(\ '判断是不是八进制。 Exit Sub End If

setad1 = Val(Str(setad \\ 10))

devadd = \ MSComm1.InBufferCount = 0 MSComm1.OutBufferCount = 0

MSComm1.Output = Chr(2) + devadd + SumChk(devadd) Tim = Timer Do

If Timer > Tim + 1 Then: Exit Do Loop Until MSComm1.InBufferCount = 20 setin = MSComm1.Input

weishu1 = Val(\ awe = dec2bin(weishu1) BN8 = Mid(awe, 1, 1) BN7 = Mid(awe, 2, 1) BN6 = Mid(awe, 3, 1) BN5 = Mid(awe, 4, 1) BN4 = Mid(awe, 5, 1) BN3 = Mid(awe, 6, 1) BN2 = Mid(awe, 7, 1) BN1 = Mid(awe, 8, 1) Select Case awe1

Case 0 'awe1断定元件号的位数,如是0位或4位 If BN1 = 1 Then biaozi = True Else

biaozi = False End If Case 1

If BN2 = 1 Then

6

上海理工大学本科生毕业设计(论文)

biaozi = True Else

biaozi = False End If Case 2

If BN3 = 1 Then biaozi = True Else

biaozi = False End If Case 3

If BN4 = 1 Then biaozi = True Else

biaozi = False End If

Case 4 If BN5 = 1 Then biaozi = True Else

biaozi = False End If Case 5

If BN6 = 1 Then biaozi = True Else

biaozi = False End If Case 6

If BN7 = 1 Then biaozi = True Else

biaozi = False End If Case 7

'awe1断定元件号的位数,如是0位或4位7

个人计算机(PC)与可编程控制器通信

If BN8 = 1 Then biaozi = True Else

biaozi = False End If End Select If biaozi = True Then

InAlarm.FillColor = QBColor(12) Else

InAlarm.FillColor = QBColor(10) End If End Sub

'以下dce2bin()函数是将Dats转换成二进制数 Private Function dec2bin(Dats$) As String

Dim bin8, bin4, bin2, bin1, bin16, bin32, bin64, bin128 If Dats \\ 128 >= 1 Then bin128 = 1 Else

bin128 = 0 End If

If (Dats Mod 128) \\ 64 >= 1 Then bin64 = 1 Else bin64 = 0 End If

If (Dats Mod 64) \\ 32 >= 1 Then 'Mod用来对两个数作除法并且只返回余数

bin32 = 1 Else bin32 = 0 End If

If (Dats Mod 32) \\ 16 >= 1 Then bin16 = 1 Else bin16 = 0

8

上海理工大学本科生毕业设计(论文)

End If

If (Dats Mod 16) \\ 8 >= 1 Then '\\ 运算符用来对两个数作除法并返回一个整数

bin8 = 1 Else bin8 = 0 End If

If (Dats Mod 8) \\ 4 >= 1 Then 'Mod用来对两个数作除法并且只返回余数

bin4 = 1 Else bin4 = 0 End If

If (Dats Mod 4) \\ 2 >= 1 Then bin2 = 1 Else bin2 = 0 End If

If Dats Mod 2 = 0 Then bin1 = 0 Else bin1 = 1 End If

bin128 = CStr(bin128) 'CStr 函数将一数值转换为 String bin64 = CStr(bin64) bin32 = CStr(bin32) bin16 = CStr(bin16)

bin8 = CStr(bin8) 'CStr 函数将一数值转换为 String bin4 = CStr(bin4) bin2 = CStr(bin2) bin1 = CStr(bin1)

dec2bin = bin128 + bin64 + bin32 + bin16 + bin8 + bin4 + bin2 + bin1 End Function

9

个人计算机(PC)与可编程控制器通信

'地址计算

Public Sub diziq() '将combox中的数据传至输出缓冲区,并判断 Dim setaddr As String setadOut = ListOutAddr.Text If setadOut = \

MsgBox (\请输入元件地址!\ Exit Sub End If

If CStr(Val(setadOut)) <> setadOut Then Exit Sub '数字区包括了字母

If Oct(Val(\ '判断是不是八进制。 Oct()可将数值转换为八进制

Exit Sub End If

DevDatOut = ydizi(setadOut) End Sub

'地址范围是0500__057F,方式是1032 Private Function ydizi(Dats$) As String Dim devadd As String Dim station1

devadd = Hex(\ 'Hex()数据转换为十六进制 station1 = \

devadd = Right(station1, 2) '取末两位 ydizi = devadd + \ End Function

Private Function SumChk(Dats$) As String Dim I& Dim CHK&

For I = 1 To Len(Dats) '求数据长度

CHK = CHK + Asc(Mid(Dats, I, 1)) '求Dats每一位数据的ASCII码的和 Next I

10


利用VB进行PC与PCL通信代码(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:监 考 记 录- 首页 首都经济贸易大学教务处

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: