6ES7351-1AH02-0AE0参数详细
1.硬件连接
一台pc机可与一台或多16台三菱fx系列通信,pc与plc之间不能直接连接。如图1a、b为点对点结构的连接,图a中是通过fx-232aw单元进行rs-232c/rs-422转换与plc编程口连接,图b中通过在plc内部安装的通信功能扩展板fx-232-bd与pc连接;如图1c所示为多点结构的连接,fx-485-bd为安装在plc内部的通信功能扩展板,fx-485pc-if为rs-232c和rs-485的转换接口。除此之外当然还可以通过其它通信模块进行连接,不再一一赘述。下面以pc与plc之间点对点通信为例。
图1 pc与fx的硬件连接图
2.三菱fx系列plc通信协议
pc中必须依据所连接plc的通信规程来编写通信协议,所以我们先要熟悉fx系列plc的通信协议。
1)数据格式
三菱 fx系列plc采用异步格式,由1位起始位、7位数据位、1位偶校验位及1位停止位组成,比特率为9600 bps,字符为ascⅱ码。数据格式如图2所示。
图2数据格式
2)通信命令
三菱fx系列plc有4条通信命令,分别是读命令、写命令、强制通命令、强制断命令,如表1所示。
表1 fx系列plc的通信命令表
3)通信控制字符
fx系列plc采用面向字符的传输规程,用到5个通信控制字符,如表2所示。
表2 fx系列plc通信控制字符表
控制字符 | ascⅱ码 | 功能说明 |
enq | 05h | pc发出请求 |
ack | 06h | plc对enq的确认回答 |
nak | 15h | plc对enq的否认回答 |
stx | 02h | 信息帧开始标志 |
etx | 03h | 信息帧结束标志 |
注:当plc对计算机发来的enq不理解时,用nak回答。
4)报文格式
计算机向plc发送的报文格式如下:
stx | cmd | 数据段 | etx | sumh | suml |
其中,stx为开始标志:02h;etx为结束标志:03h;cmd为命令的ascⅱ码;sumh、suml为按字节求累加和,溢出不计。由于每字节十六进制数变为两字节的ascⅱ码,故校验和为sumh与suml。
数据段格式与含义如下:
注:写命令的数据段有数据,读命令数据段则无数据。
plc向pc发的应答报文格式如下:
注:对读命令的应答报文数据段为要读取的数据,一个数据占两字节,分上位下位:
数据段:
对写命令的应答报文无数据段,而用ack及nak作应答内容。
5)传输规程
pc与fx系列plc间采用应答方式通信,传输出错,则组织重发。其传输过程
如图3所示。
图3传输过程
plc根据pc的命令,在每个循环扫描结束处的end语句后组织自动应答,无需用户在plc一方编写程序。
3.pc通信程序的编写
编写pc的通信程序可采用编写,或采用各种语言编写,或采用组态软件,或直接采用plc厂家的通信软件(如三菱的melse medoc等)
下面利用vb6.0以一个简单的例子来说明编写通信程序的要点。假设pc要求从plc中读入从d123开始的4个字节的数据(d123、d124),其传输应答过程及报文如图4所示。
图4传输应答过程及命令报文
命令报文中10f6h为d123的地址,04h表示要读入4个字节的数据。校验和sum=30h+31h+30h+46h+36h+30h+34h+03 h=174h,溢出部分不计,故sumh=7,suail=4,相应的ascⅱ码为“37h”,“34h”。应答报文中4个字节的十六进制数,其相应的ascⅱ码为8个字节,故应答报文长度为12个字节。
根据pc与fx系列plc的传输应答过程,利用vb的mscomm控件可以编写如下通信程序实现pc与fx系列plc之间的串行通信,以完成数据的读取。mscomm控件可以采用轮询或事件驱动的方法从端口获取数据。在这个例子中使用了轮询方法。
1)通信口初始化
private sub initialize()
mscomm1.commport =1
mscomm1.settings = “9600,e,7,1”
mscomm1.inbuffersize = 1024
mscomml.outbuffersize = 1024
mscomm1.bbbbblen = 0
mscomml.bbbbbmode = combbbbbtext
mscomm1.handshaking = comnone
mscomm1.portopen = true
end sub
2)请求通信与确认
private function makehandshaking()as boolean
dim inpackage as bbbbbb
mscomml.outbuffercount = 0
mscomml.inbuffercount = 0
mscomml.output = chr(&h5)
do
doevents
loop until mscomml.inbuffercount = 1
inpackage = mscomml.bbbbb
if inpackage = chr(&h6)then
makehandshaking = true
else
makehandshaking = false
end if
end function
3)发送命令报文
private sub sendframe ()
dim outbbbbbb as bbbbbb
mscomml.outbuffercount = 0
mscomml.inbuffercount = 0
outstrin = chr(&h2)+″on″+″10f604″+chr(&h3)+″74″
mscomml.output = outbbbbbb
end sub
4)读取应答报文
private sub receiveframe()
dim inbbbbbb as bbbbbb
do
doevents
loop until mscomml.inbuffercount = 12
inbbbbbb = mscomml.inpult
end sub
个人计算机(以下简称pc)具有较强的数据处理功能,配备着多种语言,若选择适当的操作系统,则可提供优良的软件平台,开发各种应用系统,特别是动态画面显示等。随着工业pc的推出,pc在工业现场运行的可靠性问题也得到了解决,用户普遍感到,把pc连入应用系统可以带来一系列的好处。
1. pc与plc实现通信的意义
把pc连入plc应用系统具有以下四个方面作用:
1)构成以pc为上位机,单台或多台plc为下位机的小型集散系统,可用pc实现操作站功能。
2)在plc应用系统中,把pc开发成简易工作站或者工业终端,可实现集中显示、集中报警功能。
3)把pc开发成plc编程终端,可通过编程器接口接入plc,进行编程、调试及监控。
4)把pc开发成网间连接器,进行协议转换,可实现plc与其它的互联。
2. pc与plc实现通信的方法
把pc连入plc应用系统是为了向用户提供诸如工艺流程图显示、动态数据画面显示、报表编制、趋势图生成、窗口技术以及生产管理等多种功能,为plc应用系统提供良好、物美价廉的。但这对用户的要求较高,用户必须做较多的开发工作,才能实现pc与plc的通信。
为了实现pc与plc的通信,用户应当做如下工作:
1)判别pc上配置的通信口是否与要连入的plc匹配,若不匹配,则增加通信模板。
2)要清楚plc的通信协议,按照协议的规定及帧格式编写pc的通信程序。plc中配有通信机制,一般不需用户编程。若plc厂家有plc与pc的专用通信软件出售,则此项任务较容易完成。
3)选择适当的操作系统提供的软件平台,利用与plc交换的数据编制用户要求的画面。
4)若要远程传送,可通过modem接入电话网。若要pc具有编程功能,应配置编程软件。
3. pc与plc实现通信的条件
从原则上讲,pc连入plc网络并没有什么困难。只要为pc配备该种plc网专用的通信卡以及通信软件,按要求对通信卡进行初始化,并编制用户程序即可。用这种方法把pc连入plc网络存在的唯一问题是价格问题。在pc上配上plc制造厂生产的专用通信卡及专用通信软件常会使pc的价格数倍甚至十几倍的升高。
用户普遍感兴趣的问题是,能否利用pc中已普遍配有的异步串行通信适配器加上自己编写的通信程序把pc连入plc网络,这也正是本节所要重点讨论的问题。
带异步通信适配器的pc与plc通信并不一定行得通,只有满足如下条件才能实现通信。
1)只有带有异步通信接口的plc及采用异步方式通信的plc网络才有可能与带异步通信适配器的pc互连。同时还要求双方采用的总线标准一致,都是rs-232c,或者都是rs-422(rs-485),否则要通过“总线标准变换单元”变换之后才能互连。
2)要通过对双方的初始化,使波特率、数据位数、停止位数、奇偶校验都相同。
3)用户必须熟悉互联的plc采用的通信协议。严格地按照协议规定为pc编写通信程序。在plc一方不需用户编写通信程序。
满足上述三个条件,pc就可以与plc互联通信。如果不能满足这些条件则应配置专用网卡及通信软件实现互联。
4. pc与plc互联的结构形式
用户把带异步通信适配器的pc与plc互联通信时通常采用如图1所示的两种结构形式。一种为点对点结构,pc的com口与plc的编程器接口或其它异步通信口之间实现点对点链接,如图1a所示。另一种为多点结构,pc与多台plc共同连在同一条串行总线上,如图1b所示。多点结构采用主从式存取控制方法,通常以pc为主站,多台plc为从站,通过周期轮询进行通信管理。
图1常用结构形式
a)点对点结构b)多点结构
5. pc与plc互联通信方式
目前pc与plc互联通信方式主要有以下几种:
1)通过plc开发商提供的系统协议和网络适配器,构成特定公司产品的内部网络其通信协议不公开。互联通信必须使用开发商提供的上位组态软件,并采用支持相应协议的外设。这种方式其显示画面和功能往往难以满足不同用户的需要。
2)购买通用的上位组态软件,实现pc与plc的通信。这种方式除了要增加系统投资外,其应用的灵活性也受到一定的局限。
3)利用plc厂商提供的标准通信口或由用户自定义的自由通信口实现pc与plc互联通信。这种方式不需要增加投资,有较好的灵活性,特别适合于小规模控制系统。
本节主要介绍利用标准通信口或由用户自定义的自由通信口实现pc与plc的通信。