三菱PLC与PC上位机VB通讯
上位机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中提供了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实现PC与三菱 PLC 的通信

利用VB6.0实现PC与三菱 PLC 的通信哈尔滨李松颖本文介绍的 PC 与三菱 FX 系列 PLC 通信,是通过 PLC 的编程口与 PC 机的串口进行的,采用 SC-09 编程电缆作为计算机与 PLC 通信的连线。
电缆的 9 芯 D 形插头连接在计算机串口上,另一端连接PLC 的 RS-422 编程口。
编写 PC 的通信程序可采用汇编语言、各种高级语言,也可以采用工控组态软件或直接采用 PLC 厂家的通信软件。
本文采用 VB6 . 0 软件,它必须依据所连接 PLC 的通信规程来编写通信协议,所以先简单介绍 FX 系列 PLC 的通信协议。
一、 FX 系列 PLC 的通讯协议1 .数据传输格式FX 系列 PLC 采用异步格式,由 1 位起始位、 7 位数据位、 l 位偶校验位及 l 位停止位组成,波特率为 9600bps ,字符为ASCi Ⅱ码。
2 .通信命令FX 系列 PLC 有 4 条通信命令,即读命令、写命令、强制通命令、强制断命令。
表 1 中, X 为输入继电器; Y 为输出继电器; M 为辅助继电器; S 为状态元件; T 为定时器; C 为计数器; D 为数据寄存器。
3 .通信控制字符FZ 系列 PLC 采用面向字符的传输规程,用到 5 个通信控制字符,如表 2 所示。
4 .报文格式PC 机向 PLC 发送的报文格式如表 3 所示。
其中, STX 为开始标志; ETS 为结束标志; CMD 为命令的ASC Ⅱ码: SUMH 、 SUML 为从 CMD 到 ETX 按字节求累加和,溢出不计。
由于每字节十六进制数变为两字节ASC Ⅱ代码,故校验和为 SUMH 与 SUMI 。
PLC 向 PC 机发送的应答报文格式如表 4 所示。
二、 PC 通信程序的编写1 .通信口初始化, MSComm 控件简介: VB 带有专门管理串行通讯的 MSComm 控件。
只需设置几个主要参数就可以实现 PLC 与 PC 间的串行通讯。
基于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的通信详解概要

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实现PC机与三菱FX2n系列PLC编程口的通信

用VB6.0实现PC机与三菱FX2n系列PLC编程口的通信华 健 王国强(上海海洋大学 现教中心 上海 200316)摘 要: 介绍三菱FX2n系列PLC编程口串口通信的连接、通信协议、读/写命令和格式,用VB6.0实现读/写PLC数据寄存器的方法。
关键词: PC机;PLC;串口通信;Visual Basic 6.0中图分类号:TP391 文献标识码:A 文章编号:1671-7597(2012)1110175-013)控制字符。
0 引言PC机与三菱FX2n系列PLC的串行通信时,数据是以帧为单三菱公司的FX2n系列PLC(可编程控制器)具有可靠性位发送和接受的,控制字符ENQ(05H)、ACK(06H)、NAK 高、抗干扰能力强、使用方便等特点,广泛应用于工业控制和(15H)可以单独构成字符帧,其余的字符帧在发送或接受时数据采集等场合,由于PLC本身不具有显示和直接操作的功必须用控制字STX(02H)和ETX(03H)分别作为该帧的起始标能,在使用过程中,要监视PLC内部的运行状况和数据,可选志和结束标志,各控制字符的含义如表2所示。
用人机界面或组态软件,虽然它们使用方便、直观,但价格昂贵;PC机的数据处理、数据保存,报表打印等功能是FX2nPLC所不具有的,在PC机上我们用微软公司Visual Basic6.0的通信控件MSCOMM.OCX实现读取和修改PLC内部数据的功能,再利用Access 2003关系数据库系统保存采集的数据和PLC的运行参数。
要实现PC机与FX2n PLC的串口通信,有专用的FX2n-232-BD通讯模块,而三菱FX2n系列PLC自身所带的编程口在完成下4)报文格式。
载程序后就处于闲置状态,因此我们用编程口来实现PC机与FX2nPLC的串口通信。
1 通信的硬件连接三菱FX2n系列PLC的编程口是RS-422接口,PC机的串口通信口是RS-232接口,两者不能直接连接,要用三菱公司的SC-09适配电缆才能实现串口通信。
如何通过VB实现PC机与PLC的以太网通信plc

如何通过VB实现PC机与PLC的以太网通信- plc此控件对于用户在运行时不行见,供应了一个简洁的途径访问TCP 及UDP网络服务而无需了解底层细节,使用时你只需设置属性、在恰当的时候调用它供应的方法即可。
主要属性有:BytesReceived:返回当前缓冲区中的字节数量,我们可以使用GetData 方法以接收数据。
只读且设计时不行用。
LocalHostName:返回本机名字符串,设计时不行用。
LocalIP:返回以(xxx.xxx.xxx.xxx)格式表达的IP地址串。
设计时不行用,运行时只读。
LocalPort :本机使用接收端口可读写,设计时可用,Long型。
对于客户,假如无需指定端口,则用端口0发送数据。
在此状况下,控件将随机选择一个端口。
在一个连接确定后,为TCP的端口。
对于服务器,指用于监听的端口。
如设置为0,则用随机数。
在调用Listen 方法后,该属性自动包含用到的端口。
端口0总是用于在两计算机间建立动态连接。
客户期望通过端口0获得一个随机端口以”回调”连接服务器。
Protocol :套接字类型,为TCP或UDP二者之一,缺省为TCP类型。
设置为sckTCPProtocol表示TCP协议sckUDPProtocol表示UDP协议。
在此属性被重置之前需用Close方法关闭之。
RemoteHost:发送或接收数据的主机,你可供应主机名如:FTP://,或一IP地址串,例如“100.0.1.1”。
RemoteHostIP:远程主机的IP地址。
对于客户程序,在连接确定后使用Connect方法,此属性包含远程主机的IP名串。
对于服务器程序,在引入连接需求后(Connection Request 大事),此属性包含IP串。
当使用UDP套接字,在Data Arrival大事发生后,此属性为发送UDP数据的机器IP地址串。
RemotePort:连接套接字端口值。
例如通常HTTP应用使用80端口,FTP则使用21。
VB6.0环境下三菱FX系列PLC与上位机的串行通信

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
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三菱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 b00110 1000 1000 11106 8 8 E即数据长度为7位,偶校验,2位停止位,波特率为9600bps,无标题符和终结符,采用计算机链接(RS-232C),自动添加和校验码,采用专用协议格式1。
同时设定站号为0。
具体设定如下所示:FX PLC进行计算机链接时可用的专用协议有两种:格式1和格式4。
两种格式的差别在于是否在每一个块上添加了CR + LF,其中添加了CR + LF的是格式4。
在这里采用格式1。
二.上位机程序的编制这里采用Microsoft公司的Visual Basic 6.0中文企业版编制上位机程序。
Visual Basic中提供了一个名为MSComm的通信控件便于设计串行通信的程序。
MSComm控件的主要属性有:1.CommPort属性CommPort属性用于指定所要使用的串行端口的号码。
虽然Windows操作系统可以容纳最多256个串行通信端口,不过Visual Basic的MSComm控件则仅限于16个端口。
2.Settings属性Settings属性用于设置初始化参数。
以字符串的形式设置波特率、奇偶校验、数据位、停止位等4个参数。
其格式为“BBBB,P,D,S”,其中BBBB表示波特率,P表示奇偶校验位检查方式,D表示数据位数,S表示停止位数。
一般情况下,欧美仪器习惯使用“9600,n,8,1”当成设置值;而日本仪器则习惯使用“9600,e,7,2”作为设置值。
Settings设置完成之后,所传输及接受的字符串便以此设置为准,使用RS-232通信的双方,Settings必须完全一样,彼此才能顺利地通信,否则双方将无法正确接收到彼此所传输的信号。
所以,该属性的设置必须和三菱PLC中D8120的相关设置保持一致。
在这里,统一采用“9600,e,7,2”的设定。
3.PortOpen属性PortOpen属性用于设置通信连接端口的状态。
在使用串行端口之前必须先将要使用的串行端口打开。
在上位机程序中应进行如下设定:Private Sub Form_Load() '窗体载入事件mPort = 1 '选择端口号MSComm1.Settings = "9600,e,7,2" '设置端口属性MSComm1.PortOpen = True '打开端口End Sub4.Output属性MSComm控件的Output属性提供了发送的功能,当从计算机向可编程控制器写入数据或从可编程控制器读取数据时,上位机应当先发出以下格式(格式1)的指令字符串:ENQ 站号 PC号命令消息等待时间字符区域A 和校验代码其中站号为在D8121中的设定值,这里是:00,PC号对于FX系列为:FF。
因为ENQ,ACK,NAK等通信控制字符是不可见字符,所以先用Chr函数对其进行赋值:ENQ=Chr(5)ACK=Chr(6)NAK=Chr(&H15)然后在上位机程序中写入以下代码即可发出指令:MSComm1.Output=ENQ &“00FF<命令><消息等待时间><字符区域A><和校验代码>”5.Input属性与Output属性相反,Input属性提供了接收数据的功能。
它将对方传到输入缓冲区中的数据读进程序中,并清除缓冲区中已被读取的数据。
a. 如果是从计算机向可编程控制器写入数据时,接收到从可编程控制器返回的应该是以下格式的字符串:ACK 站号PC号或者NAK 站号PC号错误代码前一种表示可编程控制器已经正确接收到从计算机发来的指令,后一种表示可编程控制器未正确接收到从计算机发来的指令。
b. 如果是从计算机向可编程控制器读取数据时,接收到从可编程控制器返回的应该是以下格式的字符串:STX 站号PC号字符区域B ETX 和校验代码或者NAK 站号PC号错误代码如果要连续读取数据可以利用Timer控件。
将Output和Input放在Timer控件的Timer事件中即可。
程序会以Timer控件的Interval属性中设置的间隔去发送指令和接收数据。
对于MSComm控件的其他一些属性使用VB的默认值即可。
在串行通信传输的应用中,经常使用的Visual Basic中的字符串处理函数如下:Chr函数:返回含有特定ANSI或DBCS字符码的字符串。
Asc函数:返回字符串第一个字符的ANSI或DBCS字符码。
Len函数:返回以字符数为单位的字符串长度。
Mid函数:取得字符串中特定数量的字符,可指定开始获取的位置和长度。
Left函数:取得字符串的左边固定字符数的字符串。
Right函数:取得字符串的右边固定字符数的字符串。
Val函数:把字符串转换为数值,可以将8进制或16进制的字符串转换为10进制。
Hex函数:返回以十六进制数值表示的字符串。
RS指令应用一三菱PLC与计算机利用RS指令进行通讯(通讯手册9-14例)三菱PLC:FX1N + FX1N-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的电源,然后再打开。
在这里对D8120采用下述设置:b15 b00000 0100 1000 11110 4 8 F即数据长度为8位,偶校验,2位停止位,波特率为9600bps,无标题符和终结符,没有添加和校验码,采用无协议。
PLC程序如下:二.上位机程序的编制完整程序代码及注释如下:Private Sub cmd1_Click() '发送按钮lbl1.Caption = ""If txt1.Text = "" Then '若发送数据栏中未键入指令则提示键入指令lbl1.Caption = "Please input data"ElseMSComm1.Output = txt1.Text '发送指令Timer1.Enabled = True '触发延时接收End IfEnd SubPrivate Sub Form_Load() '窗体载入事件mPort = 1 '选择端口号MSComm1.Settings = "9600,e,8,2" '设置端口属性MSComm1.PortOpen = True '打开端口End SubPrivate Sub Timer1_Timer() '延时500ms接收NAK = Chr(&H15)If MSComm1.InBufferCount > 0 Thentxt2.Text = ""a = MSComm1.Inputtxt2.Text = a '在接收数据栏中显示接收到的数据Elselbl1.Caption = "No response"End IfTimer1.Enabled = FalseEnd SubRS指令应用二三菱PLC与仪表之间通讯三菱PLC:FX1N + FX1N-232-BD仪表(称重器)两者之间连线该仪表仅提供3线式的简化RS-232C口,即只有:RXD,TXD和GND,于是采用2-3,3-2,5-5的三线接法。
1.对D8120进行设置并使其与仪表中的设置一致,对其中的控制线设置成使用无硬件握手方式,即(b12,b11,b10)=(0,0,0)。
根据仪表说明书上对通讯的要求,设置如下:b15b00000 0000 1000 01100 0 8 62.根据仪表说明书所述,该种仪表有两种工作方式:连续发送和指令状态。
这里设置成指令状态,即仪表根据发来的指令返回相应的数据。
在此使用READ指令,根据指令协议,输入的指令必须以<CR><LF>确认。
所以READ指令的ASCII输入为“52,45,41,44,0D,0A”一共6个字符,将RS指令的发送数据点数设为k6。
另外返回数据的格式是18个字符,所以将RS指令的接收数据点数设为k18。
通过注:发送数据点数和接收数据点数必须按指令协议进行设置,否则通讯不能正常进行。
PLC程序如下:参考资料1.三菱FX通讯用户手册(RS-232C,RS485)2.《Visual Basic与RS-232串行通信控制(最新版)》清华大学出版社。