问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

VB 上位机程序与PLC通讯

发布网友 发布时间:2022-11-06 23:53

我来回答

4个回答

热心网友 时间:2023-10-30 08:33

'窗体上添加一个MSCOMM,一个按钮,然后粘贴如下代码,点一下按钮,然后PLC发送数据,如果程序收到了,会给出确认消息
Private Const StartFlag = &HA0
Private Const EndFlag = &H23
Private Sub Command1_Click()
Static Db() As Byte
Dim t() As Byte
Dim i As Long, j As Long
Command1.Enabled = False
MSComm1.CommPort = 1
MSComm1.Settings = "9600,N,8,1"
MSComm1.InputLen = 0
MSComm1.InputMode = comInputModeBinary
MSComm1.PortOpen = True
ReDim Db(0 To 0) As Byte
Dim found As Long
Do
DoEvents
t = MSComm1.Input
If UBound(t) >= 0 Then
ReDim Preserve Db(LBound(Db) To UBound(Db) + UBound(t) - LBound(t) + 1) As Byte
j = UBound(t)
For i = UBound(Db) To LBound(Db) Step -1
Db(i) = t(j)
Debug.Print t(j)
j = j - 1

If j < LBound(t) Then Exit For
Next i
found = -1
For i = LBound(Db) To UBound(Db)
If Db(i) = StartFlag Then
found = i
End If
If Db(i) = EndFlag And found <> -1 Then
Exit For
End If
Next i
If i <= UBound(Db) Then
Dim s As String
For j = found To i
s = s & Hex(Db(j)) & " "
Next j
MsgBox s
Exit Do
End If
End If
Loop
Command1.Enabled = True
MSComm1.PortOpen = False
End Sub
不明白的请百度HI

热心网友 时间:2023-10-30 08:34

'窗体上添加一个MSCOMM,一个按钮,然后粘贴如下代码,点一下按钮,然后PLC发送数据,如果程序收到了,会给出确认消息
Private
Const
StartFlag
=
&HA0
Private
Const
EndFlag
=
&H23
Private
Sub
Command1_Click()
Static
Db()
As
Byte
Dim
t()
As
Byte
Dim
i
As
Long,
j
As
Long
Command1.Enabled
=
False
MSComm1.CommPort
=
1
MSComm1.Settings
=
"9600,N,8,1"
MSComm1.InputLen
=
0
MSComm1.InputMode
=
comInputModeBinary
MSComm1.PortOpen
=
True
ReDim
Db(0
To
0)
As
Byte
Dim
found
As
Long
Do
DoEvents
t
=
MSComm1.Input
If
UBound(t)
>=
0
Then
ReDim
Preserve
Db(LBound(Db)
To
UBound(Db)
+
UBound(t)
-
LBound(t)
+
1)
As
Byte
j
=
UBound(t)
For
i
=
UBound(Db)
To
LBound(Db)
Step
-1
Db(i)
=
t(j)
Debug.Print
t(j)
j
=
j
-
1
If
j
<
LBound(t)
Then
Exit
For
Next
i
found
=
-1
For
i
=
LBound(Db)
To
UBound(Db)
If
Db(i)
=
StartFlag
Then
found
=
i
End
If
If
Db(i)
=
EndFlag
And
found
<>
-1
Then
Exit
For
End
If
Next
i
If
i
<=
UBound(Db)
Then
Dim
s
As
String
For
j
=
found
To
i
s
=
s
&
Hex(Db(j))
&
"
"
Next
j
MsgBox
s
Exit
Do
End
If
End
If
Loop
Command1.Enabled
=
True
MSComm1.PortOpen
=
False
End
Sub
不明白的请百度HI

热心网友 时间:2023-10-30 08:34

MSCOMM中断

热心网友 时间:2023-10-30 08:35

是串口的吗,如果是串口就可以用MSCOMM,但如果能用网线的话就用OPC吧
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...爱你你是我的罗密欧 , 我愿意变成你的朱丽叶' 谁知 有句歌词是“我爱你你是我的朱丽叶,我愿意变成你的梁山伯”是哪... 为什么打印出来的文档页码和原来的不一样 ...两台电脑用路由器上网一台是W7一台是XP如何实现两台电脑共享文件 win7怎么联另一台电脑win7怎么让网络和另一台电脑共享 w7的系统怎么共享电脑w7系统里面文件怎么共享另一台电脑 共享win7电脑w7系统里面文件怎么共享另一台电脑 翡翠有收藏价值吗,我们玩家如何去投资 价格一两万元的翡翠如何挑选 ppt怎么转换成视频?简单四步法,轻松搞定ppt微课录制 1993年农历09月15号属于什么星座 飞利浦的耳机哪里有修啊 《青春之旅》结局在一起了吗? 飞利浦耳机怎么维修点 亚耶的日文读法 HP5100激光打印机打印出现乱码,公司用的是打印伺服器连接的,时好时坏。请各位朋友帮忙指点 怎么安装网络打印伺服器 五天线路由器24小时着,一个月费多少电,长年一直插着会不会爆炸? jbl TUNE500BT头戴式耳机怎么换头梁 请问安桥a800现在市面上有假货吗?用这款耳机听人声怎么样?谢谢解答 如何评价安桥a800 小米跑步机怎么关机 推扫式传感器的缺点 传感器已被其他扫描仪启用 小米3安装农业银行打开后提示src.length=1 srcPos=1 dst.length=4 dstPos=0 length=4 为什么动铁煲了以后低音潜不下去是不是坏了 二维传感器是不是就是扫描仪? 教你如何给动铁耳机煲机 小米4的miui6开发版有没有安卓src问题? 6个相同小球放入3个不同盒子盒子可以空 最期待的手机是什么样的?最想去掉手机的哪些不足之处? 枣庄市oppo售后服务中心地址 枣庄市中区oppo售后服务在哪 枣庄oppo售后服务中心地址 枣庄市山亭区耳机厂有吗 拜亚动力DT231需要煲多少个小时才能进入较好的状态? 急求!!!拜亚动力dt231手机能不能推动? 华为mate2耳机声音沙哑 拜亚动力DT231G在随身听上是否好推? 华为mate2自带耳机怎样接电话 华为mate2手机怎么搜索不到蓝牙耳机 华为mate2最上面出现耳机模式,我无法听到声音 - 信息提示 九号电动车贵不贵,什么时候发布的? 小米九号电动摩托凭什么卖一万七? 西门子plc连接电脑步骤 plc怎样连接八音盒 请问PLC如何跟触摸屏连接 请问一下用RS232怎么连接到PLC 智慧通卡初始密码