利用 VB6与三菱FX系列通讯处理

合集下载

上位机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之间的实时通信技术。

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环境下三菱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—数据寄存器。

用VB6_0实现三菱PLC与微机的通讯

用VB6_0实现三菱PLC与微机的通讯
RG>S A<1CDD-TU=B># V 1CDD:C@> W H1-AP.Z [ E [ Z 1%>@ X H%>CF8G> Y V *QH\<SQ]GHI W H%>CF8G> V :C@>-F=H W H-K\%>Q>J< =H\ RG>S 设置端口号 设置通讯参数 设置握手信号 打开相应端口 V %=>>GHI< W 1%>@ X H8G>5Q>GC Y Z [ E .E [ Z 1%>@ X H6Q>Q8G> Y
!
前言
随着计算机控制技术的发展,主从式控制系统
线方法和终端电阻。该模块采用半双工方式,用起 始—停止同步方式,->#"# & 2 端传送距离为 %!I, H=! ; H## 端总距离为 !$$I。上位机与 H=! 72 & /5 的连接可用标准 -> & #"#2 通讯电缆实现。 H=!72 & /5 没有专用的通讯软件, 只提供了专用的协议。 根据该协 议, 结合了 89 中的通讯控件 ICGJIIK JGL, 编写了742 与上位机的通讯程序,并应用与 :4##. 型滤棒成型机 组的数据采集系统中。

() 中通讯程序的实现
结合系统的程序实现,给出 O8 环境下的通信 程序实现。( 系统中, 上位机为 :1 机, 进行现场可视化 监测、 数据处理及报表管理; 下位机为 :31 控制器, 完 ) 成机器控制、 数据采集 设定的通讯协议为: !采用半 双工异步通信方式,通过 5%),) 电缆进行信号的收发 转换, 传输的数据采用二进制数据, 其起始位、 停止位、 数据位、 波特率, 包括端口都可在系统运行时进行动态 调整, 以适应不同系统的变换; "上位机和下位机之间 为严格的主从式通信, 通信时, 上位机首先发出读 ? 写 命令,建立连接;#下位机接受到上位机发来的数据 后, 进行纠错后, 回发数据。如果在规定的时间内上位 机收不到应答数据, 则为本次通讯失败。 ’* ! 通信初始化程序 首先,在窗体中添加对应 A<BCDD 控件各属性 的单选框, 在程序装入时进行初始化设置, 允许用户 根据具体情况进行修改,然后建立与串行接口的连 接。程序如下, 其中 H1-AP.-、 H8G>5Q>GC、H6Q>Q8G>、 H%>CF8G> 等均为可以由用户调整的参数。 程序 #:

基于VB6.0与三菱PLC的自动化检测控制系统的设计

基于VB6.0与三菱PLC的自动化检测控制系统的设计
a c e
l
-
c o m m u n ic a t io n
e m o n
a rc
h it e
w
c
tu re
d i s t r ib
d
c o n tro
v
l
a
s
y s te
s
m
T h e V B is
n
u s e n
d in t h e
r
ppe
r n
m a c
h in
n s
to
rm a
p in t e
c
tro d e )是


种 以 电位 法 测
3 2 MR 型号的 PLC

因为

般 PC 机 的串口 是遵循

量 溶 液 中 某 些 特 定 离 子 活 度 的 指 示 电极
按 照 IU P A C 推 荐 的 定

232
协议 的
而 三 菱 P LC 的 编 程 口 是 遵 循 R S

422 协议
A b s t ra
c t
n o n
-
a
p
e r
d
e s c r ib e s
the
u s e
o
f io

s e le c
t iv
e
e le c
tro d e
a
m e
t h o d to d e t e c t
c o m
e
le
c
t r o c h e m ic a l p a r a
m e
t e r s o f i n d u s t r ia l p r o

VB与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只电容即可。

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的通信概述:本文介绍了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控件编程方便,具有更完善的发送和接收功能。

FX-DLL使用说明

FX-DLL使用说明

VB与三菱FX系列PLC通讯动态链接库说明其使用说明:该动态链接库是用VB6.0编写的ActiveX.dll,适用于日本三菱电机自动化的FX系列的PLC通过其编程口(RS422)与电脑通讯。

VC工程调用方法:请阅读《VC访问VB的ActiveX.dll》的PDF文档。

VB工程调用方法:1.将本人所提供的名为‘COMFXPLC.dll’的动态链接库文件拷贝到VB 的工程文件夹中;2.在‘开始’- ‘运行’的‘打开’输入文本框内输入:“regsvr32”+ 空格+动态链接库文件路径+ “COMFXPLC.dll”,然后点击‘确定’进行注册;3.打开在VB的工程,从‘工程’- ‘引用’的组件下找到‘COMFXPLC’打勾,然后点击‘应用’;4.在工程要调用的模块或过程中声明,如:‘Dim ABC As New FXPLC '(FXPLC为DLL类模块名称,,默认名称为Class1);5.在要调用的位置写如调用函数,如:DEF = DI_Read(1,0);VB调用例程:'读取X000-X007的状态,用‘DI_Read’函数:Sub ReadDIO()Dim Obj As New FXPLCDim a, b,ReadData As Integera = Combo1.ListIndex + 1 '调用参数1:通讯端口号码,如电脑的COM1连接的PLC,则参数1应为1b = V al(Combo2.Text) '调用参数2:要读取的状态的字节,此时应为0ReadData = Obj.DI_Read(a, b) '此时‘ReadData’就等于X000-X007输入状态的值If ReadData >= 1003 Then MsgBox"通讯超时!"End Sub函数名称及其功能:DI_Read 以字节为单位读输入(X)的状态;(试用版仅此一个函数)DO_Read 以字节为单位读输出(Y)的状态;DO_Write 以字节为单位写输出(Y)的状态;MR_Read 以字节为单位读内部继电器(M)的状态;MR_Write 以字节为单位写内部继电器(M)的状态;DR_Read 以字为单位读数据寄存器(D)的状态;DR_Write 以字为单位写数据寄存器(D)的状态;BT_Force 以位为单位强制-ON,包括软元件X、Y、M、S、T、C;BT_Clear 以位为单位清除-OFF,包括软元件X、Y、M、S、T、C;函数返回值:1000执行成功;1001通讯端口被占用或损坏;1002函数的参数超过最大值,如字节最大是255;1003通讯超时,电缆开路;注意:在外部设备(如电脑)通过通讯方式操作PLC时,PLC内的用户程序(一般是梯形图)的执行权限将优先于外部设备,如在PLC中的程序为:0 LD M1001 OUT Y0003 END此时,如M100为OFF状态,通过BT_Force函数强制Y000为ON,即使执行成功,Y000也是OFF状态;如M100为ON状态,通过BT_Clear函数强制Y000为OFF,即使执行成功Y000也为ON状态;如通过电脑控制M100,Y000的状态将随M100的状态改变。

用VB6_0实现与三菱PLC的远程通信

用VB6_0实现与三菱PLC的远程通信

文章编号:1672-6197(2004)04-0073-04用VB6.0实现与三菱PLC 的远程通信张国强,常发亮(山东大学控制学院,山东济南250061)摘 要:对PLC 进行实时监控通常是在局域网内由上位机直接访问串口实现的,当PLC 分布非常分散时,上位机通过IN TERNET 与PLC 进行数据交换是一种经济有效的方法.介绍了三菱PLC 的通信协议,描述了上位机通过INTERNET 与PLC 进行通信的硬件结构,并用VB6.0实现了其软件部分.关键词:PLC ;远程监控;VB6.0;串口通信中图分类号:TP277 文献标识码:ATelecommunication of PC with Mitsu bishi PLC Based on VB 6.0ZHANG Guo -qiang ,CHANG Fa -liang(College of Control Science and T echnolo gy ,Shandong University ,Jinan 250061,China )A bstract :Computers usually control PLC by accessing serial ports in LAN directly .But when PLCs distribute widely ,accessing PLC by internet is an economical and available w ay .The com -munication protocol of M itsubishi PLC is introduced ,and the hardw are frame of PC -PLC is de -scribed .The software is developed in VB6.0.Key words :PLC ;long -distance control ;VB6.0;serial com municationPLC (可编程控制器)将计算机技术、自动控制技术和通讯技术融为一体,因为其可靠的性能和方便的编程而广泛应用于工业控制领域[1].PLC 与计算机之间的通讯连接,可以用计算机作为上位机,下面连接数十台PLC 作为现场控制机,构成“集中管理,分散控制”的分布式控制系统.这样,设在监控中心的微机就能够对分布在现场的具有网络通信功能的PLC 的状态信号、运行数据和故障类型进行实时远程动态监控,及时预告和排除设备故障[2].三菱PLC 具有多种通信模块,其中包括FX232、FX422和FX485.利用这些通信模块,可以在多台PLC 间构成PLC 网络,也可以在微机和PLC 之间构成“微机-PLC ”网络[3].通常情况下,上位机是在局域网内通过直接访问串口实现与PLC 的数据交换的.本文介绍了一种通过IN TERNET 进行通信的“微机-PLC ”网络,给出了三菱PLC 的通信协议,硬件结构,并详细介绍了其软件部分.收稿日期:2004-03-15作者简介:张国强(1975-),男,硕士研究生. 第18卷第4期 山 东 理 工 大 学 学 报(自然科学版) Vol .18No .42004年7月 Journal of Shandong University of T echnolo gy (Sci &Tech ) Jul .2004DOI :10.13367/j .cn ki .sd gc .2004.04.0171 方案框架方案框架如图1所示.其中,NPort 是串口和以太网连接的桥梁,能够让众多的串口设备连接上网络而不用通过内置的以太网口.网络的扩展不受主机插槽数量的限制,当有扩充串口设备的需求时,不需要购买额外的PC 机来升级,只需将NPort 简单的架在局域网上,便可连接各种扩充的设备,从而可以大大节省费用开支,并且避免了硬件冲突的可能性.图1 硬件连接框图在VB6.0中,Microsoft 公司提供了一个M scomm 控件,这是一个在Window s 下简化串口通讯编程的Active X控件,但是它最多访问16个串口.因为需要访问的串口已经超出16个,而且以后还有扩展的需要,因此不宜再使用该控件.这里我们使用了动态链接库(DLL )Pcomm .在用PCcom m 开发程序时,只要将PComm .bas 模块添加到工程中,就可以调用Pcomm .dll 提供的函数了.PComm 是一个强大的串口通信开发工具,能大大提高开发效率.2 指令格式2.1 计算机从PLC 中读数据(PC →PLC )计算机向PLC 发出的指令格式图如图2所示.每条指令都是以ENQ 作为报头(Header ),以校验码和CRLF作为报文图2 计算机向PLC 发出的指令格式图的结束.用串口号来区分不同的PLC ,站号和PLC 号分别设为00h 和FFh .PLC 中可用的操作码很多,象BR (读取位),WR (读取字)和BW (写入位),WW (写入字)等,在此用到的是WR 命令.等待时间是指PLC 从接收到命令包到作出反应的间隔时间.数据区包括要读取的首单元号和单元个数.校验码的计算方法为:从站号开始到数据区的各个字符的ASCII 码相加(16进制表示),其结果的最后两位即为校验码.图3 计算机从PLC 接收到的数据格式图读数据时,计算机从PLC 接收到的数据包的格式如图3所示.S TX 为正确报文的开始标志,STX 为正确报文的结束标志.数据区为从PLC 中读取的数据.如果上位机接收到的报文的第一个字符是NAK 时,说明信息的传输发生异常,上位机将发送与上次相同的信息,反复N 次仍然接收到NAK 错误应答标志时,上位机强制结束本次传输.错误代码给出了错误的原因和相应的解决方法.图4 PLC 到计算机的数据格式图2.2 往PLC 中写数据(PC ※PLC )计算机往PLC 中写数据的指令格式与计算机从PLC 中读取数据的指令格式相同(如图1).所不同的是,数据区由三部分组成,包括要写入数据的起始单元、单元数和各指定单元需要写入的具体数据.74 山 东 理 工 大 学 学 报 2004年 写数据时,PLC 有响应时返回的数据结构如图4所示.处理方法与读数据相同.3 程序的具体实现用Pcomm 动态链接库开发串行通信程序时,为了利用Pcomm 提供的函数,首先要把Pcomm .bas 模块加入到工程中.Pcomm 提供了七类函数,这里只介绍其中的几个:sio open (打开串口),sio close (关闭串口),sio ioctl (设置串口号,波特率,校验方式),sio read (从PLC 往缓存中读数据),sio w rite (向PLC 中写数据).上位机访问各串口采用轮询的方式,用定时器控制访问每个串口的时间间隔,为了提高数据传输的实时性,采用集中发送命令,分别接收数据的命令传输方式.本例中,控制参数为“9600,E ,8.1”,从D0060开始的17个单元为读取的数据区域.各部分的具体实现如下[4]:3.1 设置控制参数Private Function portset ()As Booleanportset =FalseDim ret %ret =sio ioctrl (port ,B9600,P EVEN Or BIT8Or STOP 1)If ret <>SIO OK Then MsgBox (″设置错误″)End If(设置串口号,波特率,校验方式及数据位和停止位.所用三菱PLC 的通信参数为“9600,e ,8,1”)portset =TrueEnd Function3.2 初始化程序Private Sub Form Load ()Dim ret %ret =sio open (po rt )If portset ()=False Then sio close (port ) MsgBox ″设置错误″Exit Sub (打开串口,检查设置是否正确.)End IfEnd Sub3.3 发送数据Const CODE ENQ As String =&H5Const CODE CL As String =&HCConst CODE CR As String =&HD(05H ,0CH ,0DH 分别代表ENQ ,CL ,CR 的十六进制ASCII 码.)Public Sub Send data () Dim slen ,chksum As Long Dim send buff ,msg ,tx tstr As String Dim i ,length ,cnt ,char1,buf ()As Integer txtSendBo x .Text =00&FF &WR &0&D006011(其中00为站号,FF 为PLC 号,W R 为读取数据的控制命令,D006011代表读取从D0060开始的17个存储单元.)75第4期 张国强,等:用VB6.0实现与三菱PLC 的远程通信 leng th =Len (txtSendBox .Text ) char1=0 chksum =0 For cnt =1To length char1=Asc (Mid $(txtSendBox .Text ,cnt ,1)) chksum =chksum +char1 Nex t(计算校验位,计算方法为:从站号开始到数据区结束的所有字符转换成十六进制ASCI I 码然后求和,其结果的后两位作为校验位.)tx tReceive .Tex t =″″tx tSendBox .Tex t =Chr (CODE ENQ )&txtSendBox .Tex t &Right $(Hex $(chksum ),2)&Chr (CODE C R )&Chr (CODE LF )(与三菱PLC 通信的完整的串行通信协议.)buf =StrConv (txtSendBo x .Text ,vbFrom Unicode )slen =sio w rite (po rt ,buf (0),leng th +5)(把发送数据从文本形式转换为字符形式,再进行数据的发送.)End Sub3.4 接收数据Private Sub cmdreceive Click ()Dim i ,dlen As LongDim buf (0To 25000)As By te(定义一个足够大的数据接受缓冲区.)dlen =sio read (po rt ,buf (0),20000)If dlen <0Then MsgBox ″数据读取错误″End If(用读取命令从数据缓冲区读取数据,并检查是否有数据读出)End Sub4 结 语用可编程控制器实现数据通信,是为了适应多层次工厂自动化系统的要求[5].在现阶段,网络化是一种潮流,在不久的将来所有设备连接网络会逐渐成为一种规范.TCP /IP 网络是一种低成本的分布性解决方案,能够满足高弹性布线和众多串口数的需求.可编程控制器系统通过NPORT 连接TCP /IP 网络,可以控制分布在不同厂房、不同区域、甚至不同城市的PLC 设备,不需要重新布线也不需要购买额外的PC 机,是一种非常理想的分布性、扩充性的解决方案.该解决方案及其串口通信程序,已经成功用于济南市环保局的烟气在线检测系统.实践证明,在检测点分散,检测点数量较多的情况下,用这样的硬件结构,并在通信程序中使用PCOM M 动态链接库提供的函数是非常方便的.参考文献:[1]邹宗峰,裴仁清.用VB6.0实现OM RON 系列PLC 与微机的通信[J ].机电一体化,2003,(1):59-60.[2]徐 德,孙同景.可编程序控制器(PLC )应用技术[M ].济南:山东科学技术出版社,2000.[3]范逸之.Visual Basic 与RS232串行通讯技术[M ].北京:中国青年出版社2004.[4]姚胜蓝,宋 刚,胡德金.基于PLC 的远程监控系统[J ].组合机床与自动化加工技术,2003,(7):48-49.[5]徐 军.可编程控制器PLC 的数据通讯及网络技术[J ].自动化与仪器仪表,2003,(4):33-35.76 山 东 理 工 大 学 学 报 2004年 。

实现计算机与三菱PLC的通信

实现计算机与三菱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 控件编程方便,具有更完善的发送和接收功能。

VB与FXPLC串口通讯

VB与FXPLC串口通讯

VB与FXPLC串口通讯一.前言随着生产自动化程度的不断提高,可编程序控制器PLC得到了广泛的应用,特别是小型PLC 具有编程简单、性能可靠和价格低的特点,被大量应用于单机控制系统中,如啤酒的稀释控制、离心机控制等。

作为设备维修技术人员,一般都能掌握PLC和计算机PC的应用知识,但如何利用PLC和PC来设计小型自控系统,实现简单的数据采集和监控操作,从而满足生产需要,却是一个要深入学习研究的问题。

面向生产操作,设计简单有效的控制系统,涉及到三部分的软件编程:第一:PC上人机操作界面的设计。

PC作为上位机,一般都是运行在Windows 98/2000操作系统下,利用微软提供的可视化编程软件Visual Basic 6.0,设备维修技术人员就可设计出优美的人机操作界面,只需进行主要操作功能编程和少量界面控制编程。

第二:实现生产工艺要求的PLC控制程序设计。

因为是小型控制系统,其生产控制过程并不复杂,技术人员只要充分了解了生产工艺和控制要求,运用PLC编程工具,此部分设计编程并不难。

第三:PC与PLC通讯程序的设计。

此部分的开发设计较难,需要掌握PC和PLC的有关通讯硬件驱动和通讯协议的知识。

但对于小型控制系统来说,主要通过PC串口来通讯,所以通讯程序设计的关键是如何利用Visual Basic 6.0中的串口通信控件——MSComm控件,并根据PLC的串口通信协议设计出上下位机的数据交换程序。

下面以啤酒稀释自控系统设计为例,主要讲解PC和PLC通讯程序的设计要点。

二.啤酒稀释自控系统设计分析1. 啤酒稀释控制要求啤酒稀释是啤酒生产中一个重要环节,通过把高浓度的酒液与脱氧水按比例混合成稀释酒,从而提高啤酒产量和增加啤酒品种,稀释的控制过程很简单,主要步骤有:1) 输入高浓度的浓度A和稀释后要达到的浓度B ;2) 计算出加水量的百分比 [(B-A) / A]*100% ;3) 根据此百分比和高浓酒的瞬时流量,计算出脱氧水要达到的流量;4) 比较水的瞬时流量和计算出的流量,来控制水调节阀的开度,使水瞬时流量等于计算流量。

基于VB和三菱编程口协议的PLC工控系统通信设计

基于VB和三菱编程口协议的PLC工控系统通信设计

基于VB和三菱编程口协议的PLC工控系统通信设计
王希望;孙小华;王福顺
【期刊名称】《河北农业大学学报》
【年(卷),期】2013(36)4
【摘要】通过分析目前被广泛应用的PC机+触摸屏+PLC的监控系统的串行通讯设计,提出了一种基于VB6.0和三菱编程口协议的串行通讯的实现方案.该方案不需外加三菱的专用通信板,实现了简单硬件连接下的快速稳定的串行通讯,而且不需对PLC的D8120进行设置,简化了PLC程序;在三菱通讯口协议下应用VB6.0编写
的串行通讯程序适应于FX全系列PLC,使PC机可直接对PLC的软设备进行读/写、强制置/复操作,在实际应用中无论通讯的准确性和稳定性均达到工控系统要求.
【总页数】5页(P115-119)
【作者】王希望;孙小华;王福顺
【作者单位】河北农业大学信息科学与技术学院,河北保定071001;河北软件职业
技术学院数字传媒系,河北保定071000;河北农业大学信息科学与技术学院,河北保
定071001
【正文语种】中文
【中图分类】TP273
【相关文献】
1.工控机与三菱FX2N系列PLC编程口通信的实现 [J], 刘辉;付子义;潘萍;蔡育欣
2.基于编程口的三菱PLC与PC机串行通信实现 [J], 柳剑;陈於学;杨曙年
3.基于编程口的三菱PLC与PC机串行通信实现 [J], 黄章硕;
4.基于VB的FX-2N编程口与工控机通讯编程 [J], 杨艳; 朱俊峦; 杨刚
5.基于MODBUS-TCP协议的视觉系统、PLC与工业机器人通信设计 [J], 周文婷;孟凡文;王海亮
因版权原因,仅展示原文概要,查看原文内容请购买。

基于VB6.0实现PC与三菱PLC之间的通讯

基于VB6.0实现PC与三菱PLC之间的通讯

基于VB6.0实现PC与三菱PLC之间的通讯卫昱含;张佳莹【摘要】本文以三菱FX2N系列PLC为例,介绍了如何利用VB语言实现PC与PLC之间的通信。

【期刊名称】《电子技术与软件工程》【年(卷),期】2013(000)024【总页数】1页(P64-64)【关键词】PLC;串行通信;VB6;0【作者】卫昱含;张佳莹【作者单位】吉林建筑大学城建学院,吉林省长春市130111【正文语种】中文【中图分类】TP311.1本文以三菱FX2N系列PLC为例,介绍了如何利用VB语言实现PC与PLC之间的通信。

当今世界是一个高度自动化的世界,各种各样的设备都可以与计算机相连。

工业现场已形成集中管理、分散控制的现代管理体系。

在工业生产中,由于PLC具有安全可靠、运行速度快、性价比高、可通过编程完成复杂的控制逻辑等优点,被广泛的应用于工业生产的各个领域。

在生产过程中,监视PLC内部的数据与运行状况,选用组态等软件,虽然功能丰富,但价格昂贵。

利用Visual Basic6.0软件实现对PLC的监控,可在几乎不增加设备开支的情况下成功实现上位机与PLC之间的通信。

本文基于三菱FX2N系列PLC的链接通信协议,用VB成功开发了上位机与PLC间通信数据传输与控制系统,实现VB对PLC的单点控制。

FX2N系列是FX系列PLC家族中最先进的系列。

由于FX2N系列具备最大范围的包容了标准特点、程式执行更快以及满足单个需要的大量特殊功能模块等特点,为工厂自动化应用提供最大的灵活性和控制能力。

FX2N可控制16~256点,内置8K容量的RAM存储器,最大可以扩展到16K;CPU运算处理速度0.08μS/基本指令;在FX2N系列右侧可连接输入输出扩展模块和特殊功能模块;基本单元内置2轴独立最高20kHz定位功能(晶体管输出型)。

VB6.0中在开发可视化环境下的监控系统中有独特的优势,提供了串行通信控件MSCommd控件。

使用MSComm控件进行串口编程时非常方便,程序员不必花更多时间去了解较为复杂的API函数,而且在VB、Visual C++、Delphi等语言中均可使用。

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

利用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 间的串行通讯。

要完成通信必须设置 MSComm 的相关属性值,即通信口初始化,其步骤如下:(1)CoinmPort :设置或传回通信连接端口代号。

(2)Settings :设置初始化参数。

以字 - 符串的形式设置或传回连接速度、奇偶校验、数据位、停止位等 4 个参数。

(3)PortOpen :设置或传回通信连接端口的状态。

(4)Input :从输入寄存器传回并移除字符。

(5)Output :将一个字符串写入输出寄存器。

(6)InputLen :指定由串行端口读入的字符串长度。

(7)InBufferCount :传回在接收寄存器中的字符数。

2 .通讯程序举例首先,在窗体开始设计之前,添加MSComm 控件和按钮、文本框、标签等。

(1)PC 从PLC 中读取数据假设PC 要从PLC 中读入从D123 开始的 4 个字节的数据( 占用两个数据寄存器:D123 、D124) ,其报文如表5 所示。

根据三菱FX 系列PLC 编程口通信协议,地址算法为address=address×2+1000h将地址123 转换成十六进制为7Bh ,因此首地址为:address=addressx2+1000h=7Bhx2+1000h= 10F 6h .再转换成ASCII 码为31h,30h,46h,36h校验和SUM=30H+31H+30H+46H+36H+30H+34H+03H=174H ,溢出部分不计,故SUMH 为"7" ,SUML 为"4" ,相应的ASC Ⅱ码为“ 37H ”和“ 34H ”。

PLC 的应答报文格式如表6 所示。

(2) 把数据写入PLC例如,向PLC 的D123 数据寄存器写入数据“ 1234ABCD ”的报文格式如表7 所示本文介绍的利用VB6 .O 实现PC 与三菱PLC 通信的基本方法,切实可行,具有广泛的实用价值。

对初学者很有帮助。

Windows平台下利用VB实现电脑与三菱Q00PLC的串行通信收藏此信息打印该信息添加:用户发布来源:未知摘要:本文分析了Windows环境下串行通信的编程技术,介绍了在Windows环境下用VB6.0语言编写串行通信程序,实现了PC机与三菱 Q00PLC 之间的串行通信,并提出了在实际应用中提高串行通信性能的方法。

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

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

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

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

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

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

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

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

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

二串行通信串行通信是指计算机主机与外设之间以及主机系统与主机系统之间数据的串行传送。

使用串口通信时,发送和接收到的每一个字符实际上都是一次一位的传送的,每一位为1或者为0。

2.1 串行通信的分类串行通信可以分为同步通信和异步通信两类。

同步通信是按照软件识别同步字符来实现数据的发送和接收,异步通信是一种利用字符的再同步技术的通信方式。

2.1.1 同步通信同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息。

这里的信息帧与异步通信中的字符帧不同,通常含有若干个数据字符。

它们均由同步字符、数据字符和校验字符(CRC)组成。

其中同步字符位于帧开头,用于确认数据字符的开始。

数据字符在同步字符之后,个数没有限制,由所需传输的数据块长度来决定;校验字符有1到2个,用于接收端对接收到的字符序列进行正确性的校验。

同步通信的缺点是要求发送时钟和接收时钟保持严格的同步。

2.1.2 异步通信异步通信中,在异步通行中有两个比较重要的指标:字符帧格式和波特率。

数据通常以字符或者字节为单位组成字符帧传送。

字符帧由发送端逐帧发送,通过传输线被接收设备逐帧接收。

发送端和接收端可以由各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,互不同步。

接收端检测到传输线上发送过来的低电平逻辑"0"(即字符帧起始位)时,确定发送端已开始发送数据,每当接收端收到字符帧中的停止位时,就知道一帧字符已经发送完毕。

2.2 几种流行的串行通信协议RS-232、RS-422和RS-485都是串行数据接口标准,最初都是由电子工业协会(EIA)制订并发布的,RS-23 2在1962年发布,后来陆续有不少改进版本,其中最常用的是RS-232-C版。

目前RS-232是PC机与通信工业中应用最广泛的一种串行接口。

RS-232被定义为一种在低速率串行通信中增加通信距离的单端标准。

RS-232采取不平衡传输方式,即所谓单端通信。

标准规定,RS-232的传送距离要求可达5 0英尺(约15米),最高速率为20kbps。

图1 RS232端口的硬件握手和连接方式RS232的通讯信号电平为正负5~15V,这不同于数字电路的0~3V或0~5V,所以要以RS232的方式进行通讯,源信号不匹配时需要进行电压转换。

当进行数据传送时,只用一根数据线且只能进行单向传输的方式,称为单工方式;当进行数据传送时,只用一根数据线利用不同时段进行双向传输的方式,称为半双工方式;当进行数据传送时,利用两根数据线同时进行发送和接收的方式,称为全双工方式。

由于RS-232存在传输距离有限等不足,于是RS-422诞生了。

RS-422标准全称是“平衡电压数字接口电路的电气特性”,它定义了一种平衡通信接口,将传输速率提高到10Mbps,传输距离延长到4000英尺(约1219米),并允许在一条平衡总线上连接最多10个接收器。

当然,RS-422也有缺陷: 因为其平衡双绞线的长度与传输速率成反比,所以在100kbps速率以内,传输距离才可能达到最大值,也就是说,只有在很短的距离下才能获得最高传输速率。

一般在100米长的双绞线上所能获得的最大传输速率仅为1Mbps。

另外有一点必须指出,在RS-422通信中,只有一个主设备(Master),其余为从设备(Salve),从设备之间不能进行通信,所以RS-422支持的是点对多点的双向通信。

为扩展应用范围,RS于1983年在RS-422基础上制定了RS-485标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为TI A/RS-485-A标准。

由于RS-485是从RS-422基础上发展而来的,所以RS-485许多电气规定与RS-422相仿,如都采用平衡传输方式、都需要在传输线上接终接电阻、最大传输距离约为1219米、最大传输速率为10Mbps等。

但是,RS-485可以采用二线与四线方式,采用二线制时可实现真正的多点双向通信,而采用四线连接时,与RS-422一样只能实现点对多点通信,但它比RS-422有改进,无论四线还是二线连接方式总线上可接多达32个设备。

三菱的 Q00PLC 的通讯接口为RS232。

三三菱 Q00PLC 的通讯方式3.1 通讯协议三菱的 Q00PLC 采用列 MELSEC 通讯协议,即 MC 协议。

MC协议采用帧的形式进行通讯,它包括以下几种形式:(1)、QnA 兼容3C 帧。

此种帧包括1-4种格式。

(2)、QnA 兼容4C 帧。

此种帧包括1-5种格式。

(3)、QnA 兼容2C 帧。

此种帧包括1-4种格式。

(4)、QnA 兼容3E 帧。

此种帧包括1-4种格式。

(5)、A 兼容1E 帧。

3.2 实现方式(1)命令文件的发送采用MC 协议进行的数据通讯采用半双工通讯方式进行。

访问PLC CPU 时对于刚刚进行的命令文件发送请在接收PLC CPU 侧发送的响应文件后发送下一个命令文件(在响应文件的接受尚未完成之前不能进行下一个命令文件的发送)图2 命令文件和响应的顺序(2)对于命令文件不能接收正常结束的响应文件时接受异常结束的响应文件时,可根据响应文件中的出错代码进行处理3.3 Q00PLC 的帧格式Q00PLC内置了MC通讯协议的QnA 兼容3C 帧和 RS232 通讯接口,所以不用外加通讯模块就可以实现与上位机的通讯。

相关文档
最新文档