1. 看考云 > 知识库 >

vb串口通信视频教程,VB与三菱Q系列PLC连接

本文目录索引

1,VB与三菱Q系列PLC连接

说实话,这个对于新手来说,比较难。这个项目如果由工程公司来做,估计要十几万块。光软件的开发一处,就绝对不是一个人短时间能做的来的。所以,请你先重新检查一下他们聘用你的诚意。
你只说了你的系统的输入部分,没有说具体的输出控制对象。
1.读条形码可以用扫卡器(不知道学名是什么),RS232口的有很多,直接接上位机。
2.光电传感器种类太多了,我见过SUNX+三菱Q PLC+网络模块+上位机的连接方法。各个厂家的产品都差不多,接法相同。好像也有传感器直接接上位机的,我没用过。
3.软件,这里最难,我也不太懂。当然可以用VB做底层开发。你也别指望能从网络上下载到什么优秀的工控软件。厂家都是指着它卖钱的。

大体的思路是这样的,输入元件采集信号,通过以太网传输,在PC机上由操作者监视、干预、操作,再通过输出设备控制产品去向。

仅能帮你这么多了。

补充一下:我们这里的系统使用的是 Intouch 作为编程软件的。图形界面,我觉得不错。可惜人家不肯给我安装文件。

VB与三菱Q系列PLC连接

2,VB6.0如何通过程序修改串口通信参数?

太阳雨多年积攒极其珍贵的原创VB串口通信技术资料V4.0 (600M)

VB串口通信编程源码200个,多种行业多种应用...
VB串口通信技术文章160篇,详尽地对VB串口通信的诠释...
VB串口通信电子书籍16部,工业通信名家著作,经典细致...
VB串口通信控件16个,简化串口通信编码,提高开发效率...
VB串口视频教程44个,一套完整视频教程,讲解直观,更快掌握...

超级赠品一:OSI网络模型教程48M
超级赠品二:串口硬件层知识大全资料包24M
超级赠品三:串口调试工具80个,应用于各种串口调试与校验计算...
超级赠品四:程序员发展类文章和书籍12部,帮助您的成长,健康和发展....
超级赠品五:更送虚拟串口调试软件, 帮助你在没有串口的电脑上也能正常调试...

你在淘宝搜索“太阳雨VB串口资料”就可以找到,希望可以帮助到你。
同时,还有"太阳雨VC串口资料"和"太阳雨DELPHI"串口资料...
望君采纳

3,vb 串口与单片机传送数据 急!!!!

Private Sub Mscomm1_Oncomm()

'...通讯事件发生
Dim indata As Variant
Dim bte(0) As Byte
Select Case MSComm1.CommEvent
Case comEvReceive '...有接受事件发生
indata = MSComm1.Input
'...注意!要通过MSComm控件发送或接收二进制数据必须用Variant类型的变量对二进
'...制Byte类型的变量进行转换!
bte(0) = AscB(indata)
Text2.Text = bte(0)
MSComm1.InBufferCount = 0 '...清空输入寄存器
End Select
End Sub
Private Sub Command1_Click()
'...发送数据
Dim Num As Integer
Dim outbte(0) As Byte
Num = Val(Text1.Text)
outbte(0) = CByte(Num)
MSComm1.OutBufferCount = 0 '...清空输出寄存器
MSComm1.Output = outbte(0) '...发送数据
End Sub
Private Sub Command2_Click()
'...退出
Unload Me
End Sub
Private Sub Form_Load()
'...初始化
MSComm1.CommPort = 1 '...使用Com1口
MSComm1.Settings = "9600,n,8,1" '...设置通讯参数
MSComm1.PortOpen = True '...打开串口
End Sub

你试试这个~

4,VB串口通讯一次性发送多个命令为什么程序会一起处理?

网络传输过程涉及的因素很多,也很复杂,因此是不可能按照你设定的时限来实现精确的定时发送和接受的(就好比你浏览一个网页,不可能每次打开的速度都完全一样吧?甚至还可能会出现无法打开的时候),它采用的实际上是缓冲区的方式,也就是说发送方会用一个缓冲区来存储你需要发送的数据,达到指定的数量后它就会一次性发送给接收方,接收方也一样,使用一个缓冲区来接收数据,达到指定数量后再通知系统,这样的话你所谓的时间间隔就完全失去作用了!
正确的方法应该用应答的方式,就是发送方发送一个命令后,接收方接收命令并处理完毕后,要给发送方回复一个命令表示前一命令已处理完毕,这时候发送方再发送下一个命令,这样就能保证每一个命令都能接收到并得到处理,同时也能及时检测到网络阻塞等故障。

5,VB串口通信

以前做工程用的,你修改一下,可能对你有用,你看看吧 '======================串口初始化======================= Private Sub Comm_initial(Port As Byte, BaudRate As String, ParityBit As String, DataBit As Integer, StopBit As Integer) On Error GoTo ErrorTrap If MSComm1.PortOpen = True Then MSComm1.PortOpen = False ' 串口若已打开,则先关闭 MSComm1.CommPort = Port ' 设置端口号 MSComm1.Settings = BaudRate & "," & ParityBit & "," & DataBit & "," & StopBit ' 设置波特率、校验位、数据位、停止位 MSComm1.InBufferSize = 1024 ' 设置接收缓冲区为1024字节 MSComm1.OutBufferSize = 4096 ' 设置发送缓冲区为4096字节 MSComm1.InBufferCount = 0 ' 清空输入缓冲区 MSComm1.OutBufferCount = 0 ' 清空输出缓冲区 MSComm1.SThreshold = 1 ' 发送缓冲区被清空时,触发OnComm事件 MSComm1.RThreshold = 1 ' 接收缓冲区每接收到一字节数据时,触发OnComm事件 MSComm1.PortOpen = True '打开串口 If MSComm1.PortOpen = True Then txtstatus.Text = "STATUS:" & cboport.Text & " OPEND," & cbobps.Text & "," & Left(CboParity.Text, 1) & "," & Cbobit.Text & "," & cbostop.Text Else txtstatus.Text = "STATUS:COM Port Cloced" End If Exit Sub ErrorTrap: Select Case Err.Number Case comPortAlreadyOpen MsgBox "串口冲突,请更改串口号", 48, "公司车辆管理系统" CloseCom Case Else MsgBox "没有发现此串口,请确认连接", 48, "公司车辆管理系统" CloseCom End Select Err.Clear End Sub Private Sub cmdclose_Click() Call CloseCom End Sub Private Sub cmdset_Click() Call Comm_initial(Val(Mid(cboport.Text, 4, 1)), cbobps.Text, Left(CboParity.Text, 1), Val(Cbobit.Text), Val(cbostop.Text)) End Sub Private Sub Form_Load() Call Comm_initial(Val(Mid(cboport.Text, 4, 1)), cbobps.Text, Left(CboParity.Text, 1), Val(Cbobit.Text), Val(cbostop.Text)) '串口初始化 MSComm1.InputMode = comInputModeText '通过文本方式读取数据 End Sub '=========================数据接收子程序========================= Private Sub dataReceive() Dim strByte() As String '数据分割用数组 Dim receiveData As String ' 接收数据暂存 Dim i As Integer If (MSComm1.InBufferCount > 0) Then receiveData = "" ' 清接收数据暂存 receiveData = MSComm1.Input '接收数据 'txtreceive.Text = txtreceive & receiveData '===============数据在相应文本框里显示======= strByte = Split(receiveData) For i = 0 To UBound(strByte) txt1(i).Text = strByte(i) Next i txt1(8).Text = Now End If End Sub '====================OnComm事件=========================== Private Sub MSComm1_OnComm() Select Case MSComm1.CommEvent ' 设置oncomm事件,读取片机内存的值 Case comEvReceive Call dataReceive Case Else End Select End Sub '====================关闭串口子程序===================== Private Sub CloseCom() On Error GoTo Err If MSComm1.PortOpen = True Then MSComm1.PortOpen = False ' 串口若已打开,则关闭 txtstatus.Text = "STATUS:COM Port Cloced" Err: End Sub

6,VB串口Mscomm接收字符串数据怎样才能这样处理和整理?

Option Explicit
Dim sj As String
Private Sub Form_Load()
MSComm1.Settings = "9600,n,8,1"
MSComm1.InputMode = comInputModeText
MSComm1.RThreshold = 1 '当接收缓冲区到达1-8字节产生1次OnComm事件
MSComm1.CommPort = 1
MSComm1.PortOpen = True
End Sub

Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case 2
sj = sj & MSComm1.Input
If Left(sj, 1) = "A" And Right(sj, 1) = "Z" Then
Text1 = Mid(sj, 2, Len(sj) - 2)
sj = ""
Else
MSComm1.PortOpen = False
sj = ""
MSComm1.PortOpen = True
End If
End Select
End Sub
回复LZ:"还有,真的别让我再用MSComm1_OnComm() 来触发啦,连续快速接收的时候真的会程序假死的!"
这种情况是存在的,就是有线连接串口通信也存在通信假四现象.但也不是不可解决的.
请参阅:
http://topic.csdn.net/u/20080220/23/f8b5fc30-7fd3-4db9-8eb0-0262b87e8089.html
http://topic.csdn.net/u/20071220/21/2dd86b50-2f5d-47b0-b4a9-3b232b493396.html

7,VB串口接收多组数据是发生数据丢失问题

试试这个: Public Sub CKCSH() Dim I As Integer, S As String On Error GoTo ggg S = Right(Com1, Len(Com1) - 3) '去掉Com三个字母 If Not IsNumeric(S) Then Exit Sub '不是数字就跳走 MSComm1.CommPort = CInt(S) MSComm1.PortOpen = False '直接关一下 MSComm1.InputMode = comInputModeBinary MSComm1.RThreshold = 1 '每收到一个字节就触发事件 MSComm1.Settings = "9600,n,8,1" '这里你自己改一下 MSComm1.PortOpen = True MsgBox "串口已打开" Exit Subggg: If Err.Number 0 Then _ MsgBox "错误码: " & Str(Err.Number) & " 错误信息: " _ & Err.Description, vbCritical, "错误"End SubPrivate Sub MSComm1_OnComm() Dim I As Integer, SBUF() As Byte If MSComm1.CommEvent = comEvReceive Then SBUF = MSComm1.Input For I = 0 To UBound(SBUF) '不需要Text数组,一个就够了 Text1 = Text1 & " " & Hex(SBUF(I)) Next End IfEnd Sub下次不要贴图片,还得让我打一遍字。