威尼斯平台注册澳门-威尼斯所有网站

触控一体机串口与PLC通信方式先容


所属分类:选型常识???????发布时间:2017-07-18

触控一体机串口与PLC通信方式先容:

在工业领域,触控一体机常常作为上位机,而PLC常常作为下位机,两者基本采用串口通信方式,那么您知道上位机串口如何与PLC进行实时通讯呢?现场目前PLC以西门子、三菱等为主,本文就以西门子S7-200为例,先容一下PLC如何通过串口与上位机进行通讯。

S7-200系列PLC的通信口分3种工作方式:
(1)PPI(Point2to2Point Interface)方式;
(2)自由口通信(Freeport)方式;
(3)PROFIBU S2DP方式。
本文主要先容PLC的自由口通信方式。自由口通信方式是一种通讯协议完全开放的工作方式, 如果说PPI方式是外设适应PLC的话, 那么自由口通信方式就是PLC适应外设。在自由口通信方式下外设不受PPI协议的限制,不支撑PPI协议的设备也能够与S7-200系列PLC通讯, 在自由口通信方式下通讯口的协议由外设决定, PLC通过程序来适应外设。自由口通信方式是对PPI方式的一个补充,该方式使得S7-200系列PLC可以与任何具有通讯能力的、并且协议公开的设备相通讯。


1、 PLC的通信口

自由口通信就是计算机通过COM口发送指令到PLC的PORT0口(通过SM30设置)或PORT1口(通过SM130设置),PLC通过RCV接收指令,然后对指令进行译码,译码后调用相应的读/写子程序实现指令要求的操作,并返回指令实行的状态信息。

由于S7-200系列PLC的通信口是RS-485串行接口,而计算机是RS-232串行接口,所以计算机与PLC在通信时必须要进行RS-485/RS-232转换,西门子企业的PC/PPI电缆可完成这一转换,但由于其价格比较昂贵,而转换的原理又相对简单,所以可自制通信电缆。RS-485只需要二根数据线,这二根数据线既可以发送数据,也可以接收数据,通信双方采用半双工制,对于RS-232,技术已经非常成熟,应用范例也很多,参照有关资料就可以做一根可靠的通信电缆。

2、 自由口通信通信协议
在自由口模式下,通信协议是由用户定义的。但系统选择在启动通信时,PLC具有优先权。PLC通过XMT发送指令,将数据通过COM口发至上位机,然后延时等待上位机反馈信息;上位机接收到数据后,进行数据处理,将反馈信息或修改后的数据通过COM口传送到PLC的PORT0(或PORT1)口。PLC通过RCV接收指令接收信息、数据并作相应处理。至此完成一轮“一问一答”式通信,如图1所示:

3、自由口通信指令发送数据格式[2]定义
计算机每次发送一个33字节长的指令来实现一次读/写操作,指令格式见表1。
(1) 标识字符:包括起始字符和结束字符,起始字符标志着指令的开始,大家定义起始字符为ASCII码的“g”,不同的PLC从站可以定义不同的起始字符以接收针对该PLC的指令。结束字符标志着指令的结束,定义为ASCII码的“G”,不同的PLC从站可以定义不同的结束字符以接收针对该PLC的指令。
(2) 指令类型:指示操作为读操作还是写操作操作,例如大家定义05H为读操作,06H为写操作。
(3) 目标PLC站地址:表明是哪台下位机(每台下位机对应一个地址号),确保主机和从机的对应关系。
(4) 目标寄存器地址:在PLC内部用4个字节表示寄存器地址,前两个字节表示存储器类型,后两个字节表示存储器号。
(5) 读/写字节数M:读命令时,始终读取从目标寄存器开始的连续8个字节的数据(转换为十六进制ASCII码后占用16个字节),可以根据自己的需要取用,M可以任意写入。当写命令时,M表示的是要写入数据的十六进制ASCII码所占用的字节数。例如要写入1个字节的数据,数据在指令中以十六进制ASCII码表示,它将占用2个字节,此时应向M中写入“02”。同理,如果要写入5个字节的数据,M中应写入“0A”。
(6) BCC校验码:校验码的生成方法就是将要传送的字符串的ASCII码以字节为单位作异或和,并将此异或和作为指令的一部分传送出去;同样地,接收方在接到指令后,以相同的方式对接收到的字符串作异或和,并与传送方所送过来的值作对比,若其值相等,则代表接收到的指令是正确的,反之则是错误的。

4、自由口通信指令反馈数据格式
PLC在接到上位机指令后,将发送一个21字节长反馈信息,格式见表2。
其中状态信息字节包含指令实行的状态信息,例如大家可以定义01H代表读取正确,02H代表写
入正确。03H代表BCC校验码错误,04H代表指令不合法。

其他反馈数据的定义与发送数据格式的定义基本相似,在此就不赘述。

要注意在西门子PLC中所有通信数据均要用十六进制ASCII码表示。一条指令除包含数据外,还包含必要的控制字(起始字符、结束字符、指令类型等)。如果指令中的数据直接以其原本的形式传输,则不可避免的会与指令中的控制字发生混淆。例如本例中,指令的起始字符为“g”,其ASCII码值为67H,结束字符为“G”,其ASCII码值为47H。假设要写入的数据中也有47H,并且数据直接以其原本的形式传输,则PLC会因为接收到了数据中的47H而停止接收,这样PLC接收到的指令将是一个不完整的非法指令,很可能造成PLC的误动作。

为了避免这种情况的发生,S7-200系列PLC用文本来传送二进制数据。通过以16进制ASCII码的格式描述数据,每个二进制的字节都可以表示成一对ASCII编码,这对编码表示这个字节的两个16进制字符。这种格式可以表示任何的数值,仅仅使用ASCII代码的30H到39H(表示0到9)和41H到46H(表示A到F)。ASCII码的其余部分可以用作控制字(起始标志、结束标志、指令类型等)。这样,数据中的47H以ASCII码的形式进行传送就变成了34H、37H两个字节,从而避免了PLC因接收到数据中的47H而停止接收的错误。

5、 PLC程序实行过程
自由口方式只能在PLC运行方式下通信。在进行通信之前,必须先对通信口初始化。S7-200PLC通信口的初始化是通过对特殊标志位SMB30和SMB130的设置来实现的。对222型CPU而言,只需定义SMB30。这些字节设置了自由口通信的操作方式,并提供自由端口或者系统所支撑的协议之间的选择。通过使用发送中断、接收中断、XMT(发送指令)、RCV(接收指令)等指令来实现用户程序控制通信端口。XMT指令激活发送数据区中的数据,数据缓冲区一个数据指明了要发送的数据字节数,缓冲区大为255个字符,在发送完后一个字符时产生发送中断,实行中断程序;RCV指令激活初始化或结束接收信息的服务,它可以接收至多255个字符,这些字符存在缓冲区中。如果有一个中断程序连接到接收完成事件上,则接收到缓冲区的后一个字符时,会产生一个中断,实行中断程序。由自由通信协议支撑所允许的完全柔性,可以使用字符中断控制来接收数据。具体流程图见图2。
主程序及初始化部分程序如下:
NETWORK 1
LD  SM0.1  
//一次扫描调用初始化子程序
CALL initialize
NETWORK 2
LDB=VB134, VB199
//指令中的站地址与本机站地址相符
AB=VB102, 5
//指令类型为读指令
A  M0.0   //BCC码校验正确
CALL Read   //调用读子程序
NETWORK 3
LDB=VB134, VB199
//指令中的站地址与本机站地址相符
AB=VB102, 6
//指令类型为写指令
A  M0.0   //BCC码校验正确
CALL Write   //调用写子程序
NETWORK 4
LD  M0.1  
//指令接收完成后调用BCC码校验子程序
CALL Verify
NETWORK 5
LD  SM4.5  
//当端口空闲时启动RCV
RCV VB100, 0
Initialize子程序:
NETWORK 1
LD  SM0.0
MOVB 9, SMB30  //0口"9600,N,8,1"
NETWORK 2
LD  SM0.0  
//RCV指令初始化
MOVB 16#EC, SMB87
MOVB 103, SMB88
MOVB 71, SMB89
MOVB +1000, SMW92
MOVB 35, SMB94
R  SM87.2, 1
NETWORK 3
LD  SM0.0
ATCH RCVcomplete, 23
//连接口0接收完成的中断
NETWORK 4
LD  SM0.0
ATCH XMTcomplete, 9
//连接口0发送完成的中断
NETWORK 5
LD  SM0.0
ENI    //中断允许

6、工业平板电脑上位机编程应注意的问题
工业平板电脑基本配置有RS232、RS485串口,以南京研维
15寸工业平板电脑WPC-YW150AW为例,大家这款机器标配就有2个串口,顶配可以配置10个串口。
(1) 控制字的选取
反映CPU工作方式的模式开关当前位置的特殊存储器位为SM0.7,它控制自由端口模式的进入。当SM0.7为0时,模式开关处于TREM位置,当SM0.7为1时,模式开关处于RUN位置。而只有当模式开关位于RUN位置时,才允许自由端口模式。
SMB30是自由口模式控制字节,用来设定校验方式通信协议、波特率等通信参数。
SMB87用来设定接收信息状态字节。
SMB88用来设定信息的开始字符。
SMB89用来设定信息的结束字符。
SMB90用来设定空闲行的时间间隔(ms)。
SMB92用来设定字符间/信息间定时器超时值(ms),若超出此时间段,则终止接收信息。
//RCV指令初始化
MOVB 16#EC, SMB87
MOVB 103, SMB88
MOVB 71, SMB89
MOVB +1000, SMW92
MOVB 35, SMB94
R  SM87.2, 1
NETWORK 3
LD  SM0.0
ATCH RCVcomplete, 23
//连接口0接收完成的中断
NETWORK 4
LD  SM0.0
ATCH XMTcomplete, 9
//连接口0发送完成的中断
NETWORK 5
LD  SM0.0
ENI    //中断允许

7、上位机编程应注意的问题
(1) 控制字的选取
反映CPU工作方式的模式开关当前位置的特殊存储器位为SM0.7,它控制自由端口模式的进入。当SM0.7为0时,模式开关处于TREM位置,当SM0.7为1时,模式开关处于RUN位置。而只有当模式开关位于RUN位置时,才允许自由端口模式。
SMB30是自由口模式控制字节,用来设定校验方式通信协议、波特率等通信参数。
SMB87用来设定接收信息状态字节。
SMB88用来设定信息的开始字符。
SMB89用来设定信息的结束字符。
SMB90用来设定空闲行的时间间隔(ms)。
SMB92用来设定字符间/信息间定时器超时值(ms),若超出此时间段,则终止接收信息。
SMB94用来接收字符的个数。

(2) 半双工的通信处理
由于RS-485为半双工电气标准硬件电路,在用PC/PPI电缆时,发送和接收之间要有一定的时间间隔,这是由电缆本身的切换时间决定的,否则就会出现XMT/RCV冲突现象。因此,收发使能的控制切换需延时(尽管短),且通信协议(底层)一般也要求收发之间有间隔,以便正确判断传送数据的正确性。采取的措施:在发送前允许发送中断,在发送完成中断程序中关闭发送中断,延时启动接收中断,并在接收完成中断中关闭接收中断。根据经验,如果用9600波特率的话短时间间隔至少要50ms以上,否则可能会造成数据的丢失。但大家发现,在发送完成后将自定义的标志位置位,检测到标志位上跳沿的首次扫描实行一遍RCV,即使不加发送延时也不会造成数据丢失。

8、上位机部分
在上位机中利用Mscomm控件,对控件进行简单的设置就可以实现PLC与PC机之间的串行通信。

其他厂家其他型号的工业平板电脑或者PLC串口通信方式与本文先容的S7-200基本类似,原理相同,可以借鉴推广。



研维工业平板电脑新品播报:三防平板电脑YW-J28高亮1000流明windows10系统带按键双电池手套触摸屏

Copyright © 2013-2017 威尼斯平台注册澳门-威尼斯所有网站 版权所有???

热销区域:江苏浙江上海北京安徽山东福建四川广东天津河北河南湖南湖北陕西、山西、辽宁吉林江西重庆黑龙江贵州海南云南内蒙古广西宁夏新疆甘肃

声明:(1)本站遵循《中华人民共和国广告法》,在标题、页面等文案描述中尽量规避违禁词、极限词,如还有违禁词、极限词,在此申明上述词汇表述全部失效,如客户咨询均表示默认此条款,不支撑任何形式以违禁词、极限词等理由投诉或要求收取费用私下解决,特此申明!(2)除非研维企业另行申明,本网站内的所有产品、技术、App、程序、数据及其他信息(包括文字、图标、图片、照片、音频、视频、图标、色彩组合、版面设计等)的所有权利(包括版权、商标权、专利权、商业秘密及其他相关权利)均归研维企业所有。未经研维企业的许可,任何人不得以包括通过机器人、人力等程序或设备监视、复制、传播、展示、镜像、上载、下载等方式擅自使用本网站的任何内容。一旦发现侵权行为,我司将马上进行证据保全并诉诸法律。

威尼斯平台注册澳门|威尼斯所有网站

XML 地图 | Sitemap 地图