您好、欢迎来到现金彩票网!
当前位置:秒速牛牛 > 通信控制字符 >

工业平板电脑串口与PLC通信方式介绍

发布时间:2019-09-01 17:50 来源:未知 编辑:admin

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

  本文主要介绍PLC的自由口通信方式。自由口通信方式是一种通讯协议完全开放的工作方式, 如果说PPI方式是外设适应PLC的话, 那么自由口通信方式就是PLC适应外设。在自由口通信方式下外设不受PPI协议的限制,不支持PPI协议的设备也能够与S7-200系列PLC通讯, 在自由口通信方式下通讯口的协议由外设决定, PLC通过程序来适应外设。自由口通信方式是对PPI方式的一个补充,该方式使得S7-200系列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,技术已经非常成熟,应用范例也很多,参照有关资料就可以做一根可靠的通信电缆。

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

  计算机每次发送一个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码以字节为单位作异或和,并将此异或和作为指令的一部分传送出去;同样地,接收方在接到指令后,以相同的方式对接收到的字符串作异或和,并与传送方所送过来的值作对比,若其值相等,则代表接收到的指令是正确的,反之则是错误的。

  其中状态信息字节包含指令执行的状态信息,例如我们可以定义01H代表读取正确,02H代表写

  要注意在西门子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而停止接收的错误。

  自由口方式只能在PLC运行方式下通信。在进行通信之前,必须先对通信口初始化。S7-200PLC通信口的初始化是通过对特殊标志位SMB30和SMB130的设置来实现的。对222型CPU而言,只需定义SMB30。这些字节设置了自由口通信的操作方式,并提供自由端口或者系统所支持的协议之间的选择。通过使用发送中断、接收中断、XMT(发送指令)、RCV(接收指令)等指令来实现用户程序控制通信端口。XMT指令激活发送数据区中的数据,数据缓冲区第一个数据指明了要发送的数据字节数,缓冲区最大为255个字符,在发送完最后一个字符时产生发送中断,执行中断程序;RCV指令激活初始化或结束接收信息的服务,它可以接收至多255个字符,这些字符存在缓冲区中。如果有一个中断程序连接到接收完成事件上,则接收到缓冲区的最后一个字符时,会产生一个中断,执行中断程序。由自由通信协议支持所允许的完全柔性,可以使用字符中断控制来接收数据。具体流程图见图2。

  工业平板电脑基本配置有RS232、RS485串口,以南京研维15寸工业平板电脑WPC-YW150AW为例,我们这款机器标配就有2个串口,顶配可以配置10个串口。

  反映CPU工作方式的模式开关当前位置的特殊存储器位为SM0.7,它控制自由端口模式的进入。当SM0.7为0时,模式开关处于TREM位置,当SM0.7为1时,模式开关处于RUN位置。而只有当模式开关位于RUN位置时,才允许自由端口模式。

  SMB30是自由口模式控制字节,用来设定校验方式通信协议、波特率等通信参数。

  SMB92用来设定字符间/信息间定时器超时值(ms),若超出此时间段,则终止接收信息。

  反映CPU工作方式的模式开关当前位置的特殊存储器位为SM0.7,它控制自由端口模式的进入。当SM0.7为0时,模式开关处于TREM位置,当SM0.7为1时,模式开关处于RUN位置。而只有当模式开关位于RUN位置时,才允许自由端口模式。

  SMB30是自由口模式控制字节,用来设定校验方式通信协议、波特率等通信参数。

  SMB92用来设定字符间/信息间定时器超时值(ms),若超出此时间段,则终止接收信息。

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

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

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

http://upschool.net/tongxinkongzhizifu/768.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有