上位机VB实现与三菱PLC的串行通讯

合集下载

上位机VB实现与三菱PLC的串行通讯

上位机VB实现与三菱PLC的串行通讯

上位机VB实现与三菱PLC的串行通讯上位机VB实现与三菱PLC的串行通讯1. 通行原理与方法上位机要能够通过PLC监控下层设备的状态,就要实现上位机与PLC间的通信,一般工业控制中都是采用RS232C实现。

上位机首先向PLC发送查询数据的指令(实际上是查询PLC中端子的状态和DM 区的值等),PLC接收了上位的指令后,进行校验(FCS校验码),看其是否正确,如果正确,则向上位机传送数据(包含首尾校验字节)。

否则,PLC拒绝向上位机传送数据。

上位接收到PLC传送的数据,也要判断正确与否,如果正确,则接收,否则,拒绝接收。

由于CPM1A没有提供串行通信口,我们利用其提供的外设端口实现通信。

PLC与计算机之间的连接是通过OMRON提供的专用电缆CQM1-CIF01来实现的,其硬件连接图如图1所示。

(见附图)2. PLC与计算机间的通信规约计算机与PLC间的通信是以“帧”为单位进行的,并且在通信的过程中,计算机具有更高的优先级。

首先,计算机向PLC发出命令帧,然后,PLC作出响应,向计算机发送回响应帧。

其中命令帧和响应帧的格式如下:(1) 命令帧格式。

为了方便计算机和PLC的通讯,CPM1A对在计算机连接通信中交换的命令和响应规定了相应的格式。

当计算机发送一个命令时,命令数据主准备格式如图2所示。

(见附图)其中@放在首位,表示以@开始,设备号为上位机识别所连接的PLC的设备号。

识别码为命令代码,用来设置用户希望上位机完成的操作,FCS为帧检验代码,一旦通信出错,通过计算FCS可以及时发现。

结束符为“*”和CR回车符,表示命令结束。

(2) 响应帧格式。

由PLC发出的对应于命令格式的响应帧格式如图3所示。

(见附图)其中,异常码可以确定计算机发送的命令是否正确执行。

其它的与正文中的含义相同。

正文仅在有读出数据时有返回。

3. 通信程序的设计为了充分利用计算机数据处理的强大功能,我们可以采用计算机有优先权的方式,在计算机上编写程序来实现计算机与PLC的通信,计算机向PLC发出命令发起通信,PLC自动返回响应。

基于VB6.0的上位机与PLC实时通信技术

基于VB6.0的上位机与PLC实时通信技术

基于VB6.0的上位机与PLC实时通信技术基于VB6.0的上位机与PLC实时通信技术主要是通过VB6.0编程语言与PLC进行通信,实现实时数据的传输和控制操作。

要实现VB6.0与PLC的通信,首先需要通过串口连接VB6.0和PLC。

VB6.0中提供了MSComm控件,可用于实现与PLC的串口通信。

该控件可以配置串口的波特率、数据位、校验位等参数,并可以通过编程实现串口的打开和关闭操作。

在VB6.0中需要编写相应的程序代码,通过串口与PLC进行数据的发送和接收。

VB6.0提供了相应的函数和方法,可以用于读取和写入串口的数据。

通过与PLC进行数据交互,可以实现对PLC的监控和控制操作。

在进行通信时,需要定义好数据的格式和协议,以确保VB6.0与PLC之间能够正确地进行数据的传输和解析。

对于不同的PLC型号和厂商,通信协议可能会有所不同,因此需要按照PLC的通信协议进行编程开发。

在实时通信过程中,需要注意以下几个关键点。

要确保VB6.0与PLC的通信速度要足够快,以实现实时数据的传输和控制操作。

要确保数据的准确性和可靠性,可以通过校验位等方式进行数据的校验和验证。

还需要进行错误处理和异常处理,以避免通信故障和数据丢失等问题的发生。

通过使用VB6.0编程语言,结合PLC的串口通信功能,可以实现上位机与PLC的实时通信。

这样,就能够方便地进行工业控制和监测等操作,提高了生产效率和设备的运行稳定性。

基于VB6.0的上位机与PLC实时通信技术也为后续的数据分析和处理提供了基础。

这对于工业自动化领域的发展和应用具有重要意义。

基于VB6.0的上位机与PLC实时通信技术

基于VB6.0的上位机与PLC实时通信技术

基于VB6.0的上位机与PLC实时通信技术VB6.0是一种编程语言,可用于开发上位机与PLC之间的实时通信技术。

PLC是一种可编程逻辑控制器,用于控制和监控自动化设备。

通过实时通信,上位机可以与PLC进行数据交换和控制操作。

1. 通信协议选择:PLC与上位机之间的通信需要选择适当的通信协议。

常见的通信协议包括Modbus、OPC、Profibus等。

根据实际需求和设备的支持情况选择合适的通信协议。

2. 串口通信:VB6.0通过串口通信与PLC进行连接。

通常采用RS232、RS485等串口通信方式。

在编程中,需要设置串口的波特率、数据位、停止位、校验位等参数。

通过VB6.0的串口通信类库,可以实现数据的读取和写入。

3. 数据采集和监控:通过VB6.0实现对PLC数据的采集和监控。

可以使用定时器触发方式,周期性的读取PLC设备的数据。

通过VB6.0的数据处理和显示功能,可以实时显示PLC设备的状态和数据信息,如温度、压力、流量等。

4. 控制指令的发送:通过VB6.0向PLC发送控制指令,实现对设备的控制。

根据PLC 的控制逻辑,编写相应的控制程序,将控制指令发送给PLC设备。

通过串口通信,将控制指令发送出去,实现设备的开关、调节等操作。

5. 异常处理:在实时通信中,可能会出现通信故障、数据错误等异常情况。

需要在编程中添加异常处理的代码,对异常情况进行处理,保证通信的稳定性和可靠性。

基于VB6.0的上位机与PLC实时通信技术可以广泛应用于自动化控制、工业监控、智能家居等领域。

通过实时通信,可以实现对设备的远程监控和控制,提高设备的自动化程度和工作效率。

在编程过程中,需要注意通信协议的选择和参数的设置,以确保通信的正确和可靠。

需要添加适当的异常处理机制,提升系统的稳定性和可靠性。

vb与三菱PLC的通信详解概要

vb与三菱PLC的通信详解概要

Vb6.0与三菱PLC的通信串行通信程序时,有两种方法,一种是用Windows API函数,另一种是用VB支持的通信控件MSCOMM.OCX。

使用MSCOMM.OCX控件编程方便,具有更完善的发送和接收功能。

这里采用了MSCOMM.OCX控件。

项目选用三菱FX2N-64MR型PLC,SC-09电缆作为计算机与PLC通信的连线。

连接电缆的9针端连接在计算机串口上,另一端连接在PLC的RS-422编程口。

通信格式:一个多字符帧由图1所示的五部分组成,其中和校验值是将命令码—ETX之间的字符的ASCII码(十六进制数)相加,取得所得和的最低二位数。

STX(CHR(2))和ETX(CHR(3))分别表示该字符帧的起始标起和结束标志。

(1) 起始字元STX:ASCII码的起始字元STX对应的16进制数位0x02。

无论命令信息还是回应信息,它们的起始字元均为STX,接收方以此来判知传输资料的开始。

(2) 命令号码:为两位16进制数。

所谓命令号码是指上位机要求下位机所执行的动作类别,例如要求读取或写入单点状态、写入或读取暂存器资料、强制设定、运行、停止等。

在回应信息中,下位机会将上位机接收到的命令号码原原本本的随同其它信息一同发送给上位机。

(3) 元件首地址:对应要操作的元件的相应的地址。

如从D123单元中读取数据时,要把它对应的地址:0x10F6发送给PLC。

(4) 元件个数:一次读取位元件或字元件的数量。

(5) 结束字元(ETX):ASCII码的结束字元ETX对应的16进制数为0x03。

无论命令信息还是回应信息,它们的结束字元均为ETX,接收方以此来判知此次通讯已结束。

(6) 校验码(Checksum):校验码是将STX-ETX之间的ASCII字元的16进制数值以“LRC(Longitudinal Redunda ncy Check)”法计算出1个Byte长度(两个16进制数值00-FFH)的校验码。

当下位机接收到信息后,用同样的方法计算出接收信息的校验码,如果两个校验码相同,则说明传送正确。

基于VB6.0的上位机与PLC实时通信技术

基于VB6.0的上位机与PLC实时通信技术

基于VB6.0的上位机与PLC实时通信技术一、引言随着自动化技术的不断发展,PLC(可编程逻辑控制器)已经成为自动化领域中不可或缺的设备。

PLC通常用于控制工业生产线上的设备和机器,而上位机则是用来监控和管理PLC系统的设备。

众所周知,实时通信是保证PLC系统正常运行的重要因素之一。

在这篇文章中,我们将重点介绍基于VB6.0的上位机与PLC实时通信技术。

二、VB6.0简介VB6.0是微软公司于1998年发布的一款集成开发环境(IDE),它是一种编程语言,被广泛用于开发Windows平台下的应用程序。

VB6.0具有简单易学、功能丰富、开发效率高等特点,因此在工业领域得到了广泛应用。

考虑到VB6.0的这些优势,我们可以利用它来开发上位机程序,并实现与PLC的实时通信。

三、PLC实时通信技术1. 串口通信PLC通常通过串口与上位机进行通信。

在VB6.0中,我们可以利用MSCOMM控件来实现串口通信。

通过在VB6.0的界面中添加MSCOMM控件,并设置相应的串口参数(如波特率、数据位、校验位、停止位等),就可以实现与PLC的串口通信。

2. Modbus通信Modbus是一种通信协议,被广泛用于工业控制领域。

通过Modbus协议,我们可以实现上位机与PLC之间的实时通信。

在VB6.0中,我们可以使用第三方的Modbus通信库来实现Modbus通信,例如Modbus ActiveX控件等。

通过这些控件,我们可以轻松地实现Modbus通信,从而实现上位机与PLC的实时数据交换。

3. Socket通信1. 配置MSCOMM控件接下来,我们需要编写VB6.0代码,实现与PLC的串口通信。

您可以编写相应的串口通信代码,例如打开串口、发送数据、接收数据等。

示例代码如下:Private Sub Form_Load()mPort = 1 ' 串口号MSComm1.Settings = "9600,n,8,1" ' 波特率、校验位、数据位、停止位MSComm1.PortOpen = True ' 打开串口End SubPrivate Sub Command1_Click()MSComm1.Output = "010*********FF01" ' 发送数据End Sub3. 运行程序并测试您可以运行程序,并测试与PLC的串口通信是否正常。

vs2008(VB)与三菱PLC485BD通讯

vs2008(VB)与三菱PLC485BD通讯

搞技术,搞不定,很闹心!别人的奉献可以使你明朗,心情愉悦!奉献是快乐的!不要吝啬你千辛万苦摸索出来的技术!与三菱PLC的串行通讯要点PLC测的设置页面(在PLC左侧工程树下点击参数设置,然后写到PLC里)485硬件连接:rs232转485端的A接PLC的485BD上的RDA和SDA(如下图的红线),B接485BD上的RDB和SDB(如下图的白线)。

如果以设置了还不正确,要看看电脑端的串口接好没有,连线有没有短线等。

窗体源码:Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.LoadmPort = 1MSComm1.Settings = "9600,E,7,1"MSComm1.Handshaking = None MSComm1.InputLen = 0MSComm1.InBufferCount = 0MSComm1.OutBufferCount = 0MSComm1.PortOpen = TrueEnd Sub按钮及文本显示源码:Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ClickMSComm1.InBufferCount = 0MSComm1.OutBufferCount = 0MSComm1.InputLen = 0Dim fanhui As StringDim zhuangtai As Stringzhuangtai = Chr("5") + "05FFBRAX00010140"MSComm1.Output = zhuangtaiDoApplication.DoEvents()Loop Until MSComm1.InBufferCount = 9fanhui = MSComm1.InputText1.Text = "x001状态" + "------" + "数据为:" + fanhui End Sub注意:VB6.0用chr(5)表示,但是要用chr("5")表示,否则出错。

VB6.0环境下三菱FX系列PLC与上位机的串行通信

VB6.0环境下三菱FX系列PLC与上位机的串行通信
本 系统采用 F X系列 P C作为 下位机 , 人计 算 L 个 机 作 为上 位机 , 自由端 口模 式 实 现 P C与 计 算 机 以 L
H 3网、 M O 公 司 的 S S A 网、 菱 公 司 的 O RN YM C 三 M LE E E S CN T网等 。但是 P C无 法进 行 复 杂 的运 算 L
ga rmmiga dp cs f e a o n n r e so r l mmu iainb te nP C a dh s o ue yVB 0 i slo s idctsta iss — o si c nc t w e L o t mp trb 6. .Tl r ut fet n iae h t f e o e n c ee t t
ra c m il o u iai n i a c r c o r n f r n aa i l d srn o tbl y n c t s c u a y frta ser g d t ,s o i mpe a t g p r i t . n o a i
Ke r s P C;VB . y wo d : L 6 0;s r lc mmu i ain;c r mf ain p t o e a o i nct o omn i t r o l e o o c
S r a m mu c to t e e i lCo ni a i n Be we n FX re fM is bih LC Se is O tu s iP a s mpu e s d O lVB6 0 nd Ho tCo t r Ba e i .
Y N Hu —n I u —u n A al ,Q U Y eq a i
发 了 自己的 P C 网络 产 品 , 西 门子 公 司 的 SN C L 如 IE

VB6与三菱FX PLC 编程口通讯

VB6与三菱FX PLC 编程口通讯

VB6与三菱FX PLC 编程口通讯(遍历读FX-PLC'操作状态CommExit: 0=通讯进行状态,>1=通讯被打断'通讯状态CommEnd:0=开始发送和等待接收,>1:接收串已结束'CommError=通讯出错计数'FxAddress=PLC映象地址计数'FxString=存放每次PLC返回的应答串'ErrStr=每串操作的结果提示,"OK" 或 "ERR"'RowCo1=每次操作结果放在电子表格的填充区域Public CommExit%, CommEnd%Public CommError&, FxAddress&Public FxString$, ErrStr$, RowCo1$'将CommandButton1改名为Beginning,开始测试Private Sub Beginning_Click()Dim c As RangeDim m1, m2Dim s$, s1$, MaxLen&On Error GoTo err1CommPortOpen 1 '设置串口参数和打开端口CommExit = 0CommError = 0Range("A1") = ""Range(RowCo1) = ""FxAddress = 0RowCo1 = "a2:p257" '操作结果填写在表格的区域MaxLen = 16 '每次读PLC映象的字节数'遍历读FX-PLC映象区For Each c In Range(RowCo1)'命令串转换s = "0" & Right("000" & Hex(FxAddress), 4) & Hex(MaxLen) '指示正在读入的区域c = Right("000" & Hex(FxAddress), 4) & ":"'清接收区残余数据,和发命令s1 = MSComm1.InputMSComm1.Output = FxChar(s)FxString = "" '清接收区CommEnd = 0 '置发送状态c.Select '焦点指向当前单元格m1 = Timer + 2 '限定等待时间2秒,超出后转出错并结束Do While CommExit = 0m2 = TimerIf m2 > m1 ThenMsgBox "通讯线路出错!请检查线路...", vbCritical MSComm1.PortOpen = FalseExit SubEnd IfDoEvents '交出VB事件处理控制权Loop'通讯被人工打断If CommExit > 1 ThenMsgBox "通讯被取消...", vbExclamationMSComm1.PortOpen = FalseExit SubEnd IfDoEvents '交出VB事件处理控制权WriteData (FxAddress) '数据写入"PLC数据"工作表c = c & ErrStr '给出本轮通讯结果状态FxAddress = FxAddress + MaxLen '映象地址迁移If FxAddress > &HFFFF& ThenMsgBox "读入工作全部完成!", vbExclamationExit ForEnd IfDoEvents '交出VB事件处理控制权NextMSComm1.PortOpen = Falseerr1:End Sub'将CommandButton2改名为CancelB,打断正在进行的通讯Private Sub CancelB_Click()CommExit = 3End Sub'在串口中断中接收PLC返回的字串Private Sub MSComm1_OnComm()Dim sSelect Case mEventCase comEvReceives = MSComm1.InputSelect Case sCase Chr(6)CommEnd = 3Case Chr(21)CommEnd = 100End SelectFxString = FxString & sIf Len(FxString) >= 3 ThenIf Asc(Right(FxString, 3)) = 3 ThenCommEnd = 5End IfEnd IfIf CommEnd > 2 ThenIf CommEnd = 5 ThenErrStr = "OK"ElseErrStr = "ERR"CommError = CommError + 1Range("a1") = "出错计数:" & CommErrorEnd IfCommExit = 1End IfEnd SelectEnd Sub'将PLC每次返回的数据填写在"PLC数据"工作表里Private Sub WriteData(n As Long)Dim i&, j&Dim s$Static Row1%, Col1%With Worksheets("PLC数据")If n = 0 ThenRow1 = 2Col1 = 0.Range(RowCo1) = ""End If.Range(Chr(&H61 + Col1) & Row1) = Right("000" & Hex(n), 4) _ & ":" & FxStringIf Chr(&H61 + Col1) = "p" ThenCol1 = 0Row1 = Row1 + 1ElseCol1 = Col1 + 1End IfFxString = ""CommExit = 0End WithEnd Sub'将要发向PLC的命令字串组合:加起始符02h和结束符03h,及累加校验和,返回给调用者Private Function FxChar$(s$)Dim m%, n%Dim s1$s1 = UCase(s)For m = 1 To Len(s1)n = n + Asc(Mid(s1, m, 1))Nextn = n + 3FxChar = Chr(2) & s1 & Chr(3) & Right(Hex(n), 2)End Function'设置通讯口参数后,打开通讯口Private Sub CommPortOpen(Port%)If MSComm1.PortOpen = True ThenMSComm1.PortOpen = FalseEnd IfmPort = PortMSComm1.Settings = "9600,e,7,1"MSComm1.RTSEnable = TrueMSComm1.InputMode = comInputModeTextMSComm1.SThreshold = 1MSComm1.PortOpen = TrueEnd Sub如果仅相要PLC数据包中的有效数据,Private Sub MSComm1_OnComm()中接收可改为:======================================================='在串口中断中接收FX-PLC返回的字串:仅截取有用数据Private Sub MSComm1_OnComm()Dim sSelect Case mEventCase comEvReceives = MSComm1.InputSelect Case sCase Chr(2) '串起始码Case Chr(6), Chr(21) '单应答码和出错码CommEnd = sCase Chr(3) '串结束码CommEnd = 1Case ElseIf CommEnd ThenSelect Case CommEndCase 1 To 3 '串结束码到后,再等两个校验和码CommEnd = CommEnd + 1Case 4 To 6 '正常结束ErrStr = "OK"CommExit = 1Case Is > 6 '出错结束ErrStr = "ERR"CommError = CommError + 1Range("a1") = "出错计数:" & CommError CommExit = 1End SelectElseFxString = FxString & s '仅串接有效数据End IfEnd SelectEnd SelectEnd Sub。

VB与三菱PLC通信

VB与三菱PLC通信

V B与三菱P L C通信公司标准化编码 [QQX96QT-XQQB89Q8-NQQJ6Q8-MQM9N]VB与三菱PLC通信VB源代码下载PLC以卓越的可靠性和方便的可编程性广泛应用于工业控制领域。

实现PC机与PLC通信的目示、动态数据画面显示、报表显示、窗口技术等多种功能,为PLC提供良好的人机界面。

本文详并在Windows环境下,使用VB6.0开发通信程序,实现了PC机与FX系列PLC之间通信协议进行了详细的介绍,并以VB为开发工具实现了PC机与FX系列PLC的串行通信。

1前言PLC以卓越的可靠性和方便的可编程性广泛应用于工业控制领域。

实现PC机与PLC通信的目示、动态数据画面显示、报表显示、窗口技术等多种功能,为PLC提供良好的人机界面。

本文详并在Windows环境下,使用VB6.0开发通信程序,实现了PC机与FX系列PLC之间2PC机与PLC实现通信的条件带异步通信适配器的PC机与PLC只有满足如下条件,才能互联通信:(1)带有异步通信接口的PLC才能与带异步通信适配器的PC机互联。

还要求双方采用的总线单元”变换之后才能互联。

(2)双方的初始化,使波特率、数据位数、停止位数、奇偶校验都相同。

(3)要对PLC的通信协议分析清楚,严格地按照协议的规定及帧格式编写PC机的通信程序。

编程。

3PC机及与FX系列PLC的串行通讯3.1硬件连接PC机与FX系列PLC不能直接连接,要经过FX-232AW单元进行RS232C/RS-连接关系:3.2FX系列PLC的通信协议在PC机中必须依据互联的PLC的通信协议来编写通信程序,因此先介绍FX系列PLC的通信(1)数据格式FX系列PLC采用异步格式,由1位起始位、7位数据位、1位偶校验位及1位停止位组成,波II码。

(2)通信命令FX系列PLC有4个通信命令,它们是读命令、写命令、强制通命令、强制断命令,如下表所示器;M—辅助继电器;S—状态元件;T—定时器;C—计数器;D—数据寄存器。

VB实现电脑与三菱Q00PLC的串行通信

VB实现电脑与三菱Q00PLC的串行通信

在Windows平台下利用VB实现电脑与三菱Q00PLC的串行通信发布: 2011-9-8 | 作者: —— | 来源:liujiada| 查看: 445次| 用户关注:摘要:本文分析了Windows环境下串行通信的编程技术,介绍了在Windows环境下用VB6.0语言编写串行通信程序,实现了PC机与三菱Q00PLC之间的串行通信,并提出了在实际应用中提高串行通信性能的方法。

关键词:VB;Win32API函数;串行通信;Q00PLC一概述在工业控制中,串口是常用的计算机与外部串行设备之间的数据传输通道。

由于串行通信结构简单、可靠性强、实现及使用成本低、通讯标准统一,因此在测控系统和工程中应用十分广泛。

目前Wi摘要:本文分析了Windows环境下串行通信的编程技术,介绍了在Windows环境下用VB6.0语言编写串行通信程序,实现了PC机与三菱 Q00PLC之间的串行通信,并提出了在实际应用中提高串行通信性能的方法。

关键词:VB;Win32API函数;串行通信;Q00PLC一概述在工业控制中,串口是常用的计算机与外部串行设备之间的数据传输通道。

由于串行通信结构简单、可靠性强、实现及使用成本低、通讯标准统一,因此在测控系统和工程中应用十分广泛。

目前Windows在工业生产监控管理系统中已成为主流平台,Windows环境下的上、下位机之间的串行通信是设计与开发监控管理系统和集散控制系统的重要组成部分。

Microsoft公司的VB++6.0是一种高级编程语言,它提供的串列通信控件封装了封装了Win32API中的标准通信函数,可以让开发者方便开发串列通信上位机程序。

PLC是现在控制领域不可缺少的部分,已经非常普及,如何简便的与PLC交互已经成为众多厂商新的竞争战场。

由此产生了人机界面、组态软件等产品。

这些产品的产生大大简化了对PLC的控制,操作,使用更方便。

但也有共同的缺点:价格过高和开放性较差。

VB作为“原始"的编程语言在这两方面无疑有着明显的优势。

基于VB的上位机与PLC的串行通信

基于VB的上位机与PLC的串行通信

基于VB的上位机与PLC的串行通信1 引言在现代控制系统中,pc机作为上位机负责系统管理、状态监控、信息处理和打印报表等工作,plc作为下位机进行面向现场的实时控制已成为一种典型的系统结构。

因此,pc机与plc之间的通信问题便成了系统能否实现的关键。

串行通信以其接线简单、容易实现的特点得到了广泛的应用。

visual basic编程软件简单易学、功能强大,利用它可以很方便的实现pc机与plc间的串行通讯。

本文以omron公司的cpm2a plc为例,介绍了利用vb6.0实现pc机与plc串行通讯的具体方法。

omron公司的cpm2a plc支持host-link通信协议,可以与上位计算机进行通信。

使用host-link通信协议构成的通信网络,可以很方便的实现上位pc对下位plc的实时监控。

2 原理设计2.1 系统结构系统结构如图1所示,计算机作为上位机,plc作为下位机,因omron cpm2a本身带有rs-232串口,因此,利用rs-232电缆将其与pc机的串口(com1或com2)相连,便构成了一个1:1的简单的通讯系统[1]。

图1 系统结构2.2 host-link通信协议[2]omron公司的host-link通信系统是由上位计算机(ibm pc或兼容机)通过安装在各台p lc上的host-link单元连接多台plc构成的网络。

上位机对系统中的plc进行集中管理与监控,通过与host link单元的通信,可以编辑或修改各台plc的程序,实时监控其运行过程,实现自动化系统的集散控制。

对于小型plc,也可以通过其rs 232c通信端口进行链接。

系统使用host-link通信协议进行通信,上位机具有传送优先权,总是首先发出命令并启动通信,host link单元收到命令交由plc执行,然后将执行结果返回上位机,二者以通信帧为单位,轮流交换数据。

通信时一组传送的数据称为“块”,它是命令或响应的单位,从上位机发送到host -link单元的数据块称为命令块,反过来,从host- link单元发送到上位机的数据块称为响应块。

VB与三菱FX系列PLC在SC下的通信

VB与三菱FX系列PLC在SC下的通信

VB与三菱FX系列PLC在SC-09下的通信The Communication between VB and MITSUBISH FX series PLC with programming cable SC-09(宁波职业技术学院)俞国亮孟德欣Yu,Guo-liang Meng,De-xin摘 要:本文介绍了三菱FX系列PLC在SC-09下的通信协议与指令,并利用VB6.0的MSComm控件进行串行通信程序的设计。

该通信程序能读写FX全系列PLC内部各种软设备,强制复位与置位位映象元件。

关键词:可编程控制器;SC-09编程电缆;串行通信;MSComm控件中图分类号:TP311, TP368 文献标识码:AAbstract: In this paper, introduces the Communication protocols and instructions of MITSUBISH FX series PLC with programming cable SC-09, and uses MSComm control box of VB6.0 to design the serial port communication program. The communication program can read or write each soft device inside FX series PLC, and allow individual bit images to be forced ON or OFF.Keywords: PLC;programming cable SC-09;serial port communication;MSComm Control Box1 引言在PLC网络的上下位机主从式结构中,计算机为上位机,而面向现场的PLC为下位机,两者之间要用相应的接口模块连接来实现双方的通信。

基于VB6.0的上位机与PLC实时通信技术

基于VB6.0的上位机与PLC实时通信技术

基于VB6.0的上位机与PLC实时通信技术一、通信原理上位机与PLC之间的通信是通过通信协议来实现的。

通信协议是一种规定了通信双方之间通信方式和通信内容的标准化协议。

常见的通信协议有MODBUS、OPC、PROFIBUS等。

在实际应用中,根据不同的PLC型号和通信需求,选择适合的通信协议进行通信。

二、通信协议MODBUS协议是一种基于主从结构的通信协议,包括MODBUS RTU和MODBUS TCP两种通信方式。

MODBUS RTU是基于串行通信的通信方式,通信速度较快,适合于工业现场环境。

MODBUS TCP是基于以太网通信的通信方式,通信速度更快,可实现远程通信。

基于VB6.0的上位机与PLC通信通常采用MODBUS RTU协议。

在VB6.0中,可以通过串口通信控件MSComm控件实现MODBUS RTU通信。

通过设置通信端口、波特率、数据位、停止位等参数,编写相应的通信程序,实现与PLC的通信。

三、软件设计基于VB6.0的上位机软件设计需要考虑可视化界面和通信功能的实现。

在软件设计中,需要设计用户界面,包括监控界面、控制界面、报警界面等。

需要设计通信功能,包括与PLC的连接、数据读写、通信异常处理等。

在VB6.0中,可以通过控件的方式实现软件的界面设计。

通过使用标签、文本框、按钮等控件,设计出符合用户需求的可视化界面。

在通信功能的实现中,可以通过MSComm控件实现与PLC的连接和数据读写功能。

通过编写相应的通信程序,实现与PLC之间的实时通信。

四、实现方法基于VB6.0的上位机与PLC通信的实现方法主要包括以下几个步骤:1. 确定通信协议:根据PLC型号和通信需求,选择适合的通信协议,如MODBUS协议。

2. 设计界面:设计符合用户需求的可视化界面,包括监控界面、控制界面、报警界面等。

3. 编写通信程序:通过VB6.0编写通信程序,实现与PLC的连接、数据读写等功能。

在编写通信程序时,需要考虑通信协议的格式要求,保证通信数据的准确传输。

三菱PLC与PC上位机VB通讯

三菱PLC与PC上位机VB通讯

三菱PLC 与PC 上位机VB 通讯三菱 PLC : FX1N + FX1N-232-BDFX2N + FX2N-232-BD计算机: Windows XP 中文企业版 + Visual Basic 6.0中文企业版Windows 98中文版 + Visual Basic 6.0中文企业版两者之间连接使用的是 FX-232CAB-1电缆线(2-3,3-2,4-6( 8), 5-5).三菱PLC 的设置 三菱FX PLC 在进行计算机链接(专用协议)和无协议通讯( RS 指令)时均须对通讯格式(D8120)进行设定。

其中包含有波特率、数据长度、奇偶校验、停止位和协议格式等。

在修改了 D8120的设置后,确保关掉 PLC 的电源,然后再打开。

此外,对于采用 RS485形式1:N 计算机链接的还必须对站点号( D8121 )进行设定。

设定的范围从00H 到0FH (即0到15)。

在这里对D8120采用下述设置: b15 0110 1000 1000 1110 6 8 8 E即数据长度为7位,偶校验,2位停止位,波特率为 9600bps ,无标题符和终结符,采用计 算机链接(RS-232C ),自动添加和校验码,采用专用协议格式 同时设定站号为0。

具体设定如下所示:{M07 (MOVEMD二.上位机程序的编制这里采用 Microsoft 公司的 Visual Basic 6.0 Visual Basic 中提供了一个名为 MSCom 的通信控件便于设计串行通信的程序。

MSCom 控件的主要属性有: 1. Com mPort 属性Comm Port 属性用于指定所要使用的串行端口的号码。

虽然 Win dows 操作系统可以容纳最多256个串行通信端口,不过 Visual Basic 的MSCom 控件则仅限于16个端口。

2. Setti ngs 属性Sett in gs 属性用于设置初始化参数。

以字符串的形式设置波特率、奇偶校验、数据位、停 止位等4个参数。

三菱PLC与上位机串行通信的实现

三菱PLC与上位机串行通信的实现

三菱PLC与上位机串行通信的实现作者:周兆松来源:《中国新技术新产品》2019年第16期摘; 要:三菱公司生产制造的PLC因其具有较高的应用性、灵活性和接口功能等优势特点,使其在我国工业控制等诸多领域中得到了普及。

而为了能够进一步提高PLC的应用效能,需要保证PLC与上位机之间具有较好的通信效果。

为此,该文将以三菱PLC作为主要研究对象,重点围绕其与上位机的串行通信进行简要分析研究。

关键词:三菱PLC;上位机;串行通信中图分类号:TP271; ; ; ; ; ; ; ; ; 文献标志码:A0 引言为了实现PLC与上位机的串行通信,可以在充分利用PLC对各项信息数据进行集中采集之后,根据实际操作需要直接利用上位机完成各项相关信息数据的传输、分析处理、清晰显示等工作,并下达具体的控制命令,使工作人员可以与PLC之间形成高效的人机交互,实时完成监督管控工作。

1 系统硬件组成分析该文所采用的PLC与上位机分别为三菱公司自主研发制造的FX系列PLC以及PC计算机。

作为上位机的PC计算机将通过SC-09电缆连接三菱PLC这一下位机。

在通信模式中则选择使用自由端口模式,电缆的两端分别与计算机串口和三菱PLC串行通信协议下的编程口相互连接。

利用该通信模式使工作人员可以根据实际情况灵活读写PLC寄存器。

2 三菱PLC与上位机的串行通信协议在三菱PLC与上位机串行通信的过程中,选择使用的串行通信格式为RS-232。

通过参考相关资料可知,在RS-232串行通信协议下,波特率为9 600 b/s,并采用偶校验。

上位机和PLC之间采用主从应答的方式,作为下位机的三菱PLC负责接收和响应由PC上位机传输而来的读写命令,上位机在对数据进行读取时,PLC将直接接收经由通信接口从PC上位机中传输的数读取命令,此时三菱PLC在对这一命令进行及时响应后将会立即向上位机反馈数据。

同样在通信接口的作用下,上位机将直接对所获得的数据进行读取。

基于VB6.0的上位机与PLC实时通信技术

基于VB6.0的上位机与PLC实时通信技术

基于VB6.0的上位机与PLC实时通信技术一、引言在工业自动化控制领域,上位机与PLC实时通信技术扮演着十分重要的角色。

上位机是指在控制系统中完成对PLC或其他控制设备数据采集和监控的计算机。

PLC (Programmable Logic Controller)是可编程逻辑控制器的缩写,其主要作用是用来控制生产现场的设备以实现自动化操作。

上位机与PLC实时通信技术可以让上位机快速准确地与PLC交换数据,从而实现对生产工艺的实时监控和管理。

本文将重点介绍基于VB6.0的上位机与PLC实时通信技术的实现方法与应用。

二、基于VB6.0的上位机与PLC实时通信技术的实现方法1. VB6.0编程环境的搭建要实现基于VB6.0的上位机与PLC实时通信技术,首先需要在计算机上安装VB6.0开发环境。

然后,创建一个新的VB6.0项目,选择“标准EXE”模板。

2. 使用通讯控件在VB6.0中,实现与PLC的通信可以使用通讯控件。

常用的通讯控件包括MSComm控件和Winsock控件。

MSComm控件用于串口通讯,而Winsock控件用于网络通讯。

根据实际情况选择合适的通讯控件,然后在VB6.0项目中引用相应的控件库。

3. 编写通讯程序在VB6.0中,通过使用通讯控件,可以编写与PLC通讯的程序。

首先需要设置通讯控件的属性,包括端口号、波特率、数据位、停止位等。

然后编写相应的事件处理程序,如接收数据事件、发送数据事件等,以实现与PLC的数据交换。

4. 数据解析与显示通过VB6.0与PLC通讯后,上位机可以接收到PLC发送的数据。

为了实现实时监控,需要对接收到的数据进行解析和处理,然后将其显示在上位机界面上。

可以通过VB6.0提供的界面设计工具,实现数据的动态显示和更新。

5. 错误处理与安全性在实际应用中,基于VB6.0的上位机与PLC实时通信技术需要考虑通讯的稳定性和安全性。

在编写通讯程序时,需要实现错误处理机制,对通讯中可能出现的异常情况进行处理,确保通讯的稳定性。

基于VB6.0的上位机与PLC实时通信技术

基于VB6.0的上位机与PLC实时通信技术

基于VB6.0的上位机与PLC实时通信技术一、引言随着工业自动化的深入发展,工业控制系统的实时性和可靠性要求日益提高。

在工业控制系统中,上位机与PLC之间的通信是非常重要的一环。

而基于VB6.0的上位机与PLC实时通信技术则成为了工业控制领域的一大热点。

本文将从上位机与PLC通信的基本原理、通信协议的选择以及基于VB6.0的通信实现方法等方面展开阐述。

二、上位机与PLC通信的基本原理在工业控制系统中,上位机作为控制和监控的中心,而PLC则作为现场设备的控制器。

上位机与PLC之间的通信,主要是为了实现数据的实时交换和控制指令的下发。

通常情况下,上位机与PLC之间的通信采用的是串口通信或者以太网通信。

串口通信是指通过串行端口来实现上位机与PLC之间的通信。

在实际应用中,常用的是RS-232或者RS-485接口。

而以太网通信则是通过以太网协议来实现通信,实现数据的传输和交换。

无论是串口通信还是以太网通信,其基本原理都是通过特定的通信协议来实现数据的传输和交换。

不同的PLC厂家采用的通信协议可能有所不同。

因此在实际应用中,需要根据具体的PLC型号以及通信协议来进行相应的通信设置。

三、通信协议的选择在实际的上位机与PLC通信过程中,选择合适的通信协议是非常重要的。

常用的PLC通信协议包括Modbus、Profibus、MPI等。

这些通信协议都有其各自的特点和适用范围。

Modbus通信协议是一种较为常用的通信协议,它简单易懂,易于实现。

Modbus协议支持串口通信和以太网通信,可广泛应用于各种PLC和上位机之间的通信。

Profibus通信协议则是一种高速传输的通信协议,适用于对通信速度有较高要求的场合。

而MPI通信协议则主要应用于西门子PLC之间的通信。

在选择通信协议时,需要考虑PLC的型号、通信速度、通信距离等因素。

同时也需要考虑上位机的通信接口及通信协议的支持情况。

在实际应用中,需根据具体的要求和条件选择适合的通信协议。

VB与三菱FX系列PLC通讯的实现

VB与三菱FX系列PLC通讯的实现

VB 与三菱FX 系列PLC 通讯的实现在工业生产中,人们常常面临着数据采集与管理。

作为工厂自动化的三大支柱可编程控制器 PLC (Programmable Logic Controller ),由于其安全可靠,广泛的用于数据采集与控制。

生产过程中,要监视PLC 内部的数据与运行状况,选用市场上的人机界面或组态软件,虽然功能丰富,但大都价格昂贵,在一些中小规模的生产场合,人们希望能自己用高级语言开发一个简易实用的通信程序。

使用Visual Basic 6.0,开发串行通信程序时,有两种方法,一种是用Windows API 函数,另一种是用VB 支持的通信控件 MSCOMM 。

以下介绍使用通信控件方式实现通讯1.硬件采用SC-09编程电缆,连接PC 串口与PLC 编程口实现通讯。

2.PLC 编程口的通信协议简介通信格式:波特率9600,偶校验,8位数据位,一位停止位。

具体请参考有关资料,以下举例说明其通讯格式1)、DEVICE READ (读出软设备状态值)计算机向PLC 发送:3.具体程序说明 MSComm控件简介用来提供简单的串行端口通信功能,也可以用来创建功能完备、事件驱动的高级通信工具。

Mscomm控件提供了一系列标准通信命令的使用界面。

使用它可以建立与串行端口的连接,通过串行端口再连接到其它设备(如调制解调器、PLC),发出命令,交换数据,以及监视和响应串行连接中发生的事件和错误。

数据读与写采用函数input和output(1)窗口加载程序Private Sub Form_Load()mPort = 1 ‘选择COM1口MSComm1.Settings = "9600,e,7,1"If mscomm1.portopen=false then mscomm1.portopen=true End Sub(2)数据读取子程序:Public Function GetData(ByVal StartAddress As String, ByVal GetBytes As Integer, ByVal Hex_Bytes As String) As String MSComm1.InputLen = GetBytes * 2 + 4MSComm1.Output = STX + CMD_Read + StartAddress + Hex_Bytes + ETX + GetSumChk(CMD_Read + StartAddress + Hex_Bytes + ETX)‘传送数据组成:起始符+命令+首地址+数据位+结束符+和检验码GetData = MSComm1.InputMSComm1.InBufferCount = 0MSComm1.InputLen = 0End Function。

基于VB实现PLC与上位机之间的通信

基于VB实现PLC与上位机之间的通信

基于VB实现PLC与上位机之间的通信康微微;鞠振河【摘要】Centering on the THSMS-C type network programmable controller in the Experimental Center of school of automation,this paper realized the communication between Siemens S7-200 PLC and the host computer based on VB6 . 0 . The objectives are to enhance the real-time monitoring function and to improve the experimental performance of PLC control system. On the one hand,the controlled interface of man-machine is designed by VB6. 0,which can in-put parameters in need and display real-time output results. And the serial communication ActiveX controller MSComm is provided by VB6 . 0 ,using the free port communication protocol to achieve communications between PLC and PC,then PC stores and processes the experiment data timely. This paper applies experiments to prove the correct-ness of the study. The results show that the design will get good monitoring and control function,which has advantages such as economy,reliability,flexibility,real-time performance and so on.%利用THSMS-C网络型可编程控制器实验台进行VB6.0与S7-200西门子系列PLC控制实验的调试,改善了系统在监控过程中的实时同步性。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

上位机VB实现与三菱PLC的串行通讯
2009年12月15日星期二下午07:40
1. 通行原理与方法
上位机要能够通过PLC监控下层设备的状态,就要实现上位机与PLC间的通信,一般工业控制中都是采用RS232C 实现。

上位机首先向PLC发送查询数据的指令(实际上是查询PLC中端子的状态和DM区的值等),PLC接收了上位的指令后,进行校验(FCS校验码),看其是否正确,如果正确,则向上位机传送数据(包含首尾校验字节)。

否则,PL C拒绝向上位机传送数据。

上位接收到PLC传送的数据,也要判断正确与否,如果正确,则接收,否则,拒绝接收。

由于CPM1A没有提供串行通信口,我们利用其提供的外设端口实现通信。

PLC与计算机之间的
连接是通过OMRON提供的专用电缆CQM1-CIF01来实现的,其硬件连接图如图1所示。

(见附图)
2.?? PLC与计算机间的通信规约
计算机与PLC间的通信是以“帧”为单位进行的,并且在通信的过程中,计算机具有更高的优先级。

首先,计算机向P LC发出命令帧,然后,PLC作出响应,向计算机发送回响应帧。

其中命令帧和响应帧的格式如下:
(1) 命令帧格式。

为了方便计算机和PLC的通讯,CPM1A对在计算机连接通信中交换的命令和响应规定了相应的格式。

当计算机发送一个命令时,命令数据主准备格式如图2所示。

(见附图)
其中@放在首位,表示以@开始,设备号为上位机识别所连接的PLC的设备号。

识别码为命令代码,用来设置用户希望上位机完成的操作,FCS为帧检验代码,一旦通信出错,通过计算FCS可以及时发现。

结束符为“*”和CR回车符,表示命令结束。

??? (2) 响应帧格式。

由PLC发出的对应于命令格式的响应帧格式如图3所示。

(见附图)
其中,异常码可以确定计算机发送的命令是否正确执行。

其它的与正文中的含义相同。

正文仅在有读出数据时有返回。

3.?? 通信程序的设计
为了充分利用计算机数据处理的强大功能,我们可以采用计算机有优先权的方式,在计算机上编写程序来实现计算机与PLC的通信,计算机向PLC发出命令发起通信,PLC自动返回响应。

本文中采用VB来编写计算机与PLC间的通讯程序。

在VB中提供了通信控件—应用通信控件(MSCOMM),实现通过串行端口传送和接受的功能。

下面介绍MSCOMM控件的属性:
*CommPort:设定通信连接端口代号,程序必须指定所要使用的串行端口号,Windows系统使用所设定的端口与外界通信。

*PortOpen:设定通信口状态,若为真,通信端口打开,否则关闭。

*Settings:设定通信口参数,其格式是"bbbb,p
?? ,d,s",其中bbbb为通信速率(波特率),p为通信检查方式(奇偶校验),?? d ??? 为数据位数,s为停止位数,其设定应与PLC的设定一致。

*Input:将对方传送至输入缓冲区的字符读入到程序。

*Output:将字符写入输出缓冲区。

*InBufferCount:传回接收缓冲区中的字符数。

*OutBufferCount:传回输出缓冲区中的字符数。

*InputLen:设定串行端口读入字符串的长度。

*InputMode:设定接收数据的方式。

*Rthreshold:设定引发接收事件的字符数。

*CommEvent:传回OnComm事件发生时的数值码
*OnComm事件:无论是错误或事件发生,都会触发此事件。

(1) 控件参数的初始化。

初始化程序如下:
Port=2 '使用串口Com2
Mscomm.Settings="9600, E, 7, 2" '波特率9600,偶校验,7位数据位,2位停止位Mscomm.PortOpen=True '打开通信端口,准备通信
(2) 计算校验码FCS,计算FCS的VB自定义函数如下:
Function FCS(ByVal InputStr As String) As String
Dim Slen, i, Xorresult As Integer
Dim Tempfes As String
Slen=Len(InputStr) ?? '求输入字符串长度
Xorresult = 0
For i = 1 To Slen
Xorresult = Xorresult Xor Asc(Mid$(InputStr, i, 1)) ??? '按位异或
Next i
Tempfes=Hex$(Xorresult) ??? '转化为16进制
If Len(Tempfes)=1Then Tempfes =“0”+Tempfes
FCS = Tempfes
End Function
(3) 计算机与PLC通信程序。

主要是一个自定义函数。

Function ReadData(ByVal InputStr As String, ByVal Num As Integer) As String Dim OutputStr As String
Dim InString As String
Dim ReturnStr As String
Dim EndString As String
Dim FCSString As String
Dim ReturnFCSString As String)
MSComm.InBufferCount=0
OutputStr=InputStr+FCS(InputStr)+“*” '给出命令帧
MSComm.Output=OutputStr+Chr$(13) ?? '向PLC传送命令帧
Do
DoEvents
Loop While MSComm.InBufferCount < 15
InString=MSComm.Input '获取PLC的响应帧
'结束码判断
EndString = Mid$(InString, Len(InString) -
?? Num- 5, 2)
If EndString = "13" Then
??? ReadData = "Error"
??? Exit Function
ElseIf EndString = "14" Then
??? ReadData = "Error"
??? Exit Function
ElseIf EndString = "15" Then
??? ReadData = "Error"
??? Exit Function
ElseIf EndString = "18" Then
??? ReadData = "Error"
??? Exit Function
ElseIf EndString = "A3" Then
??? ReadData = "Error"
??? Exit Function
ElseIf EndString = "A8" Then
??? ReadData = "Error"
??? Exit Function
End If
'响应帧校验
EndString = Mid$(InString, 1, Len(InString) - 4)
ReturnFCSString = Mid$(InString,Len(InString) - ??? 3, 2)
FCSString = FCS(EndString)
If FCSString <> ReturnFCSString Then
??? ReadData = "Error"
??? Exit Function
End If
ReturnStr = Mid$(InString,?
?? Len(InString) - Num - 3, Num)
ReadData = ReturnStr
End Function
从上面程序可以看到,计算机对PLC返回的响应帧要进行FCS校验,并利用异常码排除返回的异常数据,这样不但可以提高计算机获取信息的正确性,而且提高了计算机监控的实时性。

相关文档
最新文档