三菱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
基于VB的三菱FX系列PLC与PC串行通信的实现
维普资讯
1 6
佛 山科 学技 术 学院 学报 ( 自然科 学版 )
维普资讯
第 2 6卷 第 3期
20 0 8年 5月
佛 山科学 技 术学 院学 报 ( 自然 科学版 )
J u n l f o h nUnv ri ( t rl ce c dt n o r a o s a ies y Nau a S i eE io ) F t n i
P I C发 出读数 据命 令 , I P c响应 命 令并将 数据 传 回上 位机 , 位 机通 过 渎通 信 口即可取 的所 需 数据 ; 上 写 数据 时 上位机 通 过通 信 口向 P I C发 出写命 令及数 据 , I 即可 接收 。当 P P c I c未能 正确 响应 时 , I P C返 回未能正 确 响应 标志 。在 该通 信协 议 下 , 据传 输 的一 般格 式如 下 : 数
中图分类号 : TP2 2 4 文献标识码 : A
P 因 可 靠 性 高 、 应 性 好 、 口功 能 强 、 态 灵 活 、 用 方 便 等 优 点 , 在 工 业 控 制 领 域 得 到 了广 I C 适 接 组 使 已
泛应 用 。但是 P I C无法 进 行复 杂 的运算 和 显示 各种 实 时控制 图 表 , 机 交互性 差 , 人 不便 于监 控 。在 当今
转换 , 图 1 示 。 如 所
图 1 系统 硬 件 结 构 图
2 P C 通 信 协 议 L
F 系 列 P X I C的 编程 口与上位 机 间 的 串行通 信采用 十六进 制 表示 的 AS I 码 进 行数据 传输 , 信 CI 通
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—数据寄存器。
三菱plc网口怎么和上位机通讯
三菱plc网口怎么和上位机通讯三菱PLC(可编程逻辑控制器)是一种广泛应用于工业自动化领域的控制设备,它通过网口(以太网端口)与上位机进行通讯,实现对生产过程的监控和控制。
本文将探讨三菱PLC网口如何与上位机进行通讯的方法和技巧。
一、通讯协议选择三菱PLC网口与上位机通讯的首要任务是选择合适的通讯协议。
常见的通讯协议包括MODBUS TCP、OPC、以太网/IP协议等。
需要确保上位机和PLC使用的通讯协议一致,才能实现正常的数据传输。
二、配置网络参数在实现PLC与上位机通讯之前,需要对网络参数进行配置。
通过PLC的编程软件,可以设置PLC的IP地址、子网掩码、网关等网络参数,确保PLC和上位机位于同一子网内,并且能够相互识别和通讯。
三、编写通讯程序配置网络参数后,需要在PLC的编程软件中编写相应的通讯程序。
根据选择的通讯协议,按照相应的通讯协议规范编写通讯指令。
通常,通讯程序包括建立连接、发送数据、接收数据等步骤,根据具体需求灵活运用。
四、数据处理与交互在PLC和上位机通讯过程中,数据处理和交互是非常重要的环节。
通过编程软件,可以指定PLC读取或写入哪些数据,同时也可以定义上位机发送给PLC的指令和数据。
在数据处理过程中,可以进行数据类型转换、数据解析等操作,确保数据的准确和可靠。
五、错误处理与异常情况在PLC和上位机通讯过程中,难免会遇到一些错误和异常情况。
这时,合理的错误处理机制是必不可少的。
例如,可以通过编程软件设置超时时间,当通讯超时时,可以重新发送指令或者进行其他处理。
此外,还可以通过监控网络连接状态等方式,及时发现和解决通讯故障。
六、安全性考虑在实现PLC与上位机通讯时,安全性是一个需要重视的问题。
为了确保数据的安全传输,可以采取一些安全措施,如加密通讯、访问权限控制等。
此外,还可以定期更改密码和密钥,增强系统的安全性。
七、实时监控与远程操控通过实现PLC与上位机的通讯,可以实现对生产过程的实时监控和远程操控。
PLC与PC机通讯的VB源程序
PLC与PC机通讯的VB源程序PLC与PC机通讯的VB源程序PLC与PC机通讯的VB源程序PLC与PC机通讯的VB源程序大体如下:我采用的是FX232BD通讯模块,协议就是FX通讯协议。
强制PLC为RUNPrivate Sub command1_Click() Dim dat As String commli.OutBufferCount = 0 commli.InBufferCount = 0 dat = "01FFRR0" commli.Output = Chr$(5) + dat + SumChk(dat) End Sub强制PLC为STOPPrivate Sub command2_Click() Dim dat As String commli.OutBufferCount = 0 commli.InBufferCount = 0 dat = "01FFRS0" commli.Output = Chr$(5) + dat + SumChk(dat) End Sub强制Y0为1Private Sub command3_Click() Dim dat As String commli.OutBufferCount = 0 commli.InBufferCount = 0 commli.Output = “01FFBW0Y001011” End Sub强制Y0为0Private Sub command3_Click() Dim dat As String commli.OutBufferCount = 0 commli.InBufferCount = 0 commli.Output = “01FFBW0Y001010” End Sub设置电脑通信参数Private Sub Commlis() If commli.PortOpen = True Then commli.PortOpen = False End If If Not commli.PortOpen Then mPort = 1 ''通信口commli.Settings = "9600,N,8,1" commli.Handshaking = 0 commli.InputLen = 0 commli.OutBufferCount = 0 commli.InBufferCount = 0 commli.PortOpen = True End If Exit SubEnd SubPrivate Function SumChk(Dats$) As String Dim i& Dim CHK& For i = 1 To Len(Dats) CHK = CHK + Asc(Mid(Dats, i, 1)) Next i SumChk = Right(Hex$(CHK), 2)End Function。
上位机与三菱plc网口通讯
上位机与三菱plc网口通讯在现代工业控制系统中,上位机与PLC(可编程逻辑控制器)之间的通讯是非常重要的一环。
上位机作为监控与管理系统的核心,负责监视PLC的运行状态、接收和发送数据。
而PLC则负责实时控制整个工业过程。
本文将探讨上位机与三菱PLC之间通过网口进行通讯的相关技术和应用。
上位机与PLC之间通讯的方式有多种,包括串口通讯、以太网通讯等。
而在现代工业中,以太网通讯已经成为主流。
以太网通讯的主要优势在于其高速、稳定性和可扩展性。
而在以太网通讯中,最常用的就是通过网口进行数据交换。
三菱PLC作为工业控制领域的龙头企业,其PLC产品广泛应用于各个行业。
三菱PLC网口通讯技术在工业自动化中具有重要的地位。
通过网口通讯,上位机可以实时监视PLC的运行状态、读取和写入PLC内部的数据,实现对整个生产过程的控制。
上位机与三菱PLC网口通讯的基本原理是通过网络协议实现数据的传输与通讯。
常见的协议包括Modbus、Ethernet/IP等。
Modbus是一种基于主从模式的通讯协议,广泛应用于工业自动化领域。
Ethernet/IP则是基于以太网的通讯协议,它支持多种数据传输服务,灵活高效。
上位机与三菱PLC网口通讯的具体实现需要借助相应的软件工具和编程技术。
我们可以使用三菱官方提供的编程软件,如GX Developer,通过编写程序实现上位机与PLC之间的数据传输与通讯。
在编程中,我们需要定义PLC的IP地址、端口号等参数,并按照通讯协议的规定进行数据的读取和写入。
在实际应用中,上位机与三菱PLC网口的通讯可以应用于许多领域。
比如工厂的生产线监控系统,上位机可以实时监视各个PLC的运行状态、设备的实时数据,通过预警和报警功能保障生产过程的正常运行。
又如智能楼宇系统,上位机可以通过与PLC 的通讯控制灯光、空调等设备,实现对楼宇的自动化管理。
除了数据的读取和写入,上位机与三菱PLC网口通讯还可以进行数据的实时监控和远程控制。
VB与PLC的通信
利用VB6.0 实现PC 与三菱PLC 的通信本文介绍的 PC 与三菱 FX 系列 PLC 通信,是通过 PLC 的编程口与 PC 机的串口进行的,采用编程电缆作为计算机与 PLC 通信的连线。
FX2系列PLC的编程接口采用RS-422标准,而计算机的串行口采用的是RS-232标准,因此作为实现PLC与计算机通信的接口模块FX-232AW,必须将RS-422标准转换成RS-232标准,同时在实现上述过程中采用光电隔离技术。
图1一、串口的相关知识1)串行通信的概念图2所谓“串行通信”是指外设和计算机间使用一根数据信号线(另外需要地线,可能还需要控制线),数据在一根数据信号线上一位一位地进行传输,每一位数据都占据一个固定的时间长度。
如图2所示。
这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,当然,其传输速度比并行传输慢2)常见的串口通信规约:目前较为常用的串口有9针串口(DB9)和25针串口(DB25),通信距离较近时(<12m),可以用电缆线直接连接标准RS232端口(RS422,RS485较远),若距离较远,需附加调制解调器(MODEM)。
最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连,且直接用RS232相连。
RS-232C: “1”=-3~-15;“0”=+3~+15速率:0~20000bps;一般传输距离:15m。
RS-422:采用平衡传输,平衡发送器、差动接收器,速率:10Mbps/15m;90Kbps/1200m抗干扰能力强。
DB9和DB25的常用信号脚说明由于FX 2-232AW 价格过贵所以我们选用选用MAXIM 公司的MAX202实现RS-232与TTL 之间的电平转换。
MAX202内部有电压倍增电路和转换电路,仅需+5V 电源就可工作,使用十分方便;选用MAX490实现RS-485与TTL 之间的转换。
每片MAX490有一对发送器/接收器,由于通信采用全双工方式,故需两片MAX490,另外只需外接4只电容即可。
基于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 : 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个参数。
Vb6.0 实现计算机与三菱PLC的通信
Vb6.0 实现计算机与三菱PLC的通信概述:本文介绍了VB 进行串口通信的各种基本方式和三菱可编程控制器之间的通信的程序设计,重点介绍了利用MSCOMM.OCX进行串行通信的设计方法。
关键词:串行通信,PLC,Visual Basic 6.0Abstract: Describes all kinds of basic serial port communication methods using Visual Basic 6.0 and design of free port communication program of MITSUBISH PLC, furthermore set focus on the designing method of serial port communication through dynamic linked library in Visual Basic 6.0Key Words: Serial port communication, PLC, Visual Basic 6.0一、引言在工业生产中,人们常常面临着数据采集与管理。
作为工厂自动化的三大支柱可编程控制器PLC(Programmable Logic Controller),由于其安全可*,广泛的用于数据采集与控制。
生产过程中,要监视PLC内部的数据与运行状况,选用市场上的人机界面或组态软件,虽然功能丰富,但大都价格昂贵,在一些中小规模的生产场合,人们希望能自己用高级语言开发一个简易实用的通信程序。
微软公司推出的Visual Basic 6.0,开发串行通信程序时,有两种方法,一种是用Windows API函数,另一种是用VB支持的通信控件MSCOMM.OCX。
利用Windows API 函数是通过调用读写等函数来操作串口。
两种比较,使用MSCOMM.OCX控件编程方便,具有更完善的发送和接收功能。
VB6.0在PLC与上位机通讯中的应用
1、引言可编程控制器以其高可靠性,配置灵活和完善的功能,在工业控制系统中得到越来越广泛的应用。
但对于操作员所需要的报表打印、趋势图形显示、工况查寻、参数在线修改等功能,PLC却不能直接方便地提供。
所以通常采用计算机PC与PLC组成一个完整的监控系统。
本文以台安TP02系列PLC为例,讨论用Visual Basic(VB)实现PLC与上位机的通讯。
2、VB在通讯控件中的使用可编程控制器PLC与上位机PC之间的通信,下位机为PLC,基于其可靠性极高,主要承担控制功能,而上位PC机主要承担监察管理功能,有时兼备部分控制功能,如发出运行,停止命令。
VB语言是基于WINDOWS操作系统的功能强、易学易用、主要是面向学习对象的程序设计语言。
VB带有专门管理串行通讯的MSComm控件,只需设置几个主要参数就可以实现PLC与PC串行通讯。
要完成通信必须设置MSComm的相关属性值:(1)CommPort:设置或传回通信连接端口代号(2)Settings:设置初始化参数。
以字符串的形式设置或传回连接速度、奇偶校验、数据位、停止位等4个参数(3)PortOpen:设置或传回通信连接端口的状态(4)Input:从输入寄存器传回并移除字符(5)Output:将一个字符串写入输出寄存器(6)InputLen:指定由串行端口读入的字符串长度(7)InBu FF erCount:传回在接收寄存器中的字符数3、软硬件之间:台安TP02与上位机PC通信时,为了实现两者的通信需要配备通信线。
4、通信程序的实现4.1 通信初始化程序首先,在窗体开始设计之前,添加MSComm控件。
4.2程序编写:4.2.1 通信控件MSComm1属性设置:mPort = 1 设置端口号MSComm1.Settings = "19200,E,7,2" 设置通信参数MSComm1.InputLen = 0 设置读入字符串长度MSComm1.PortOpen = True 设置通信端口状态4.2.2 PLC运行程序:STX$ = "::"TransmitBuf$ = "01?5RUN"sum$ = CheckSum(transmitBuf$)ETX$ = Chr$(13)SXD$ = STX$ + transmitBuf$ + sum$ + ETX$MSComm1.Output = SXD$DoDoEventsLoop Until MSComm1.InBu FF erCount >= 12In1$ = MSComm1.Input4.2.3 从PLC读取资料,将寄存器内的数据资料在PC上显示以便观察监控(反应时间50ms):STX$ = "::"transmitBuf$ = "01?5MRVD000102"sum$ = CheckSum(transmitBuf$)ETX$ = Chr$(13)SXD$ = STX$ + transmitBuf$ + sum$ + ETX$MSComm1.Output = SXD$DoDoEventsLoop Until MSComm1.InBufferCount >= 20InData$ = MSComm1.InputLabel2.Caption = Mid$(InData$, 10, 4)Label3.Caption = Mid$(InData$, 14, 4)4.2.4从PLC读取资料,将RelayC0001状态通过PC显示进行监控(反应时间50ms):STX$ = "::"transmitBuf$ = "01?5MCRC0001"sum$ = CheckSum(transmitBuf$)ETX$ = Chr$(13)SXD$ = STX$ + transmitBuf$ + sum$ + ETX$MSComm1.Output = SXD$DoDoEventsLoop Until MSComm1.InBufferCount >= 13In4$ = MSComm1.InputCoil$ = Mid$(In4$, 10, 1)C1% = CInt(Coil$)Label6.Caption = C1%4.2.5 设定Relay状态,将Relay设定为ON(反应时间50ms):Dim C1 As IntegerSTX$ = "::"transmitBuf$ = "01?5SCSY00011"sum$ = CheckSum(transmitBuf$)ETX$ = Chr$(13)SXD$ = STX$ + transmitBuf$ + sum$ + ETX$MSComm1.Output = SXD$DoDoEventsLoop Until MSComm1.InBufferCount >= 12In2$ = MSComm1.Input4.2.6 PLC停止运行:STX$ = "::"transmitBuf$ = "01?5STP"sum$ = CheckSum(transmitBuf$)ETX$ = Chr$(13)SXD$ = STX$ + transmitBuf$ + sum$ + ETX$MSComm1.Output = SXD$DoDoEventsLoop Until MSComm1.InBufferCount >= 12In3$ = MSComm1.Input4.2.7 VB6.0下CheckSum函数代码如下:Private Function CheckSum(transmitBuf$)L = Len(transmitBuf$)Add = 0Dim k, sum As IntegerFor k = 1 To LTJ$ = Mid$(transmitBuf$, k, 1)Add = Add + Asc(TJ$)Next kDo While Add >= 256Add = Add - 256LoopAdd = 255 - Add + 1tempBuf$ = Hex$(Add)CheckSum = LTrim(tempBuf$)End Function5、结论PLC与上位机的结合,并通过VB6.0传送数据所构成的计算机监控系统,对于近距离传输数据的现场控制来说是一种性价比很高的解决方案。
实现计算机与三菱PLC的通信
Vb6.0 实现计算机与三菱PLC 的通信来源: 摘要:本文介绍了VB 进行串口通信的各种基本方式和三菱可编程控制器之间的通信的程序设计,重点介绍了利用MSCOMM.OCX 进行串行通信的设计方法。
关键词:串行通信, PLC ,Abstract : Describes all kinds of basic serial port communication methods using Visual Basic 6.0 and design of freeport communication program of MITSUBISH PLC, furthermore set focus on the designing method of serial port communication through dynamic linked library in Visual Basic 6.0Key Words : Serial port communication, PLC, Visual Basic 6.0一、引言在工业生产中,人们常常面临着数据采集与管理。
作为工厂自动化的三大支柱可编程控制器PLC (Programmable Logic Controller ),由于其安全可靠,广泛的用于数据采集与控制。
生产过程中,要监视PLC 内部的数据与运行状况,选用市场上的人机界面或组态软件,虽然功能丰富,但大都价格昂贵,在一些中小规模的生产场合,人们希望能自己用高级语言开发一个简易实用的通信程序。
微软公司推出的Visual Basic 6.0,开发串行通信程序时,有两种方法,一种是用Windows API 函数,另一种是用VB 支持的通信控件MSCOMM.OCX 。
利用Windows API 函数是通过调用读写等函数来操作串口。
两种比较,使用MSCOMM.OCX 控件编程方便,具有更完善的发送和接收功能。
- 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串行通信控制(最新版)》清华大学出版社。