plc通信协议.docx

上传人:b****2 文档编号:2266617 上传时间:2022-10-28 格式:DOCX 页数:7 大小:20.80KB
下载 相关 举报
plc通信协议.docx_第1页
第1页 / 共7页
plc通信协议.docx_第2页
第2页 / 共7页
plc通信协议.docx_第3页
第3页 / 共7页
plc通信协议.docx_第4页
第4页 / 共7页
plc通信协议.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

plc通信协议.docx

《plc通信协议.docx》由会员分享,可在线阅读,更多相关《plc通信协议.docx(7页珍藏版)》请在冰豆网上搜索。

plc通信协议.docx

plc通信协议

竭诚为您提供优质文档/双击可除

plc,通信协议

  篇一:

西门子plc通信协议

  西门子plc通信协议

  a.协议综述

  1.本协议为uss协议(universalserialinterfaceRrotocol)。

采用主从寻址方式,最多一个主机,31个从机(数据报中只有5位用来表示地址)。

  2.数据报传输方式

  数据报传输有循环和非循环方式。

循环方式:

  主机定时发送任务数据报给从机,并等待接收从机发回的响应数据报。

从机收到任务数据报后,如果校验无错,且地址相符,就发送相应的响应数据报。

在此种方式下,从机应监视数据传送时间看是否超时,若过了一定时间仍未收到新的任务数据报,则继续发送对上一任务的响应,但数据使用当前的实时数据。

循环方式可用于过程控制。

非循环方式:

  主机发送任务数据报不需按任何时间规律,从机不监视任务数据报是否超时。

  3.广播

  数据报的地址字节中“广播位”置为1表示为广播数据报,所有从机都接收,但不发送响应数据报。

  4.数据报结构

  stx:

1字节,数据报头,值为0x02。

由于仅根据0x02并不能准确判断是否是一帧的开始,所以在一帧之前必须有至少2字符的起始延迟,具体时间如下表:

  lge:

1字节,为报文长度,指从adR到bcc的字节数。

  lge≤254lge=n+2

  adR:

1字节

  第1-4位表示从机地址;

  第5位为1表示广播数据报,则0-4位无用;

  第6位为1表示此数据报为镜像数据报,从机应不作任何改变原样发回;第7位为1表示特殊数据报,它的格式与本协议所定义的不同,各设备自己定义,仍根据是否广播决定是否回应;第5、6位不能同时为1。

  1-n为有效数据,其意义和长度见第c节。

  bcc:

blockcheckcharacter,校验字节,为从stx到n.的异或和。

  诊断:

通信状态信息可以显示在控制面板上,各参数意义见第a-10页。

  发送顺序:

发送字时先发送高字节,发送双字时先发送高字。

  b.物理接口

  采用eia485标准,若点对点通信也可用Rs232。

  c.有效数据的定义

  2.有效数据块的总体结构

  有效数据分成两个区域:

pkw区和pzd区。

  pkw区为参数id和值,包括任务id、响应id、参数号、参数值等;

  pzd区为过程数据区,包含自动控制所需的数据:

控制字和设定值(主机→从机)、状态字和实时值(从机→主机)。

  uss协议在串行接口上可以设置波特率、总线地址、超时时限、pkw长度和pzd长度(以word为单位)。

pkw长度为127时表示变长,需根据具体任务来判断长度。

pzd则最长不超过16个字。

通过此处的设置使主从取得

  一致。

  3.pkw区

  pkw区包含任务(主→从)或者响应(从→主)信息。

分为3部分:

pke:

1word,用于标识任务、响应。

ind:

1word,即索引index,具体见后。

  pwe:

根据任务不同长度不同,携带参数值、文本或参数描述数据。

3.1pkw结构

  pkw区可定义为3word定长、4word定长或变长。

3word定长:

  4word定长:

  变长:

  3.2pkw各部分说明3.2.1pke(parameterid)

  3.2.1.1ak:

任务和响应id

  ak由15、14、13、12  

四位组成,作为任务和响应的标识。

  例如:

任务id0001表示召唤一个word参数值,至于具体哪个参数,在参数号pnu中指定。

响应id0001则表示上传一个word参数值,pnu仍指明参数号,数值放在pwe中。

其他id定义见第c-12、13、14页。

  若任务不能被执行,则返回响应id0111,并将错误代码放在pwe中。

错误代码定义见第c-14页。

  有的任务会用到索引ind,例如任务0110召唤参数值,参数存在于一个数组中,由ind指明所要召唤的元素下标,ind为255表示召唤所有元素。

  一个任务和响应一般只涉及到一个参数,只有当ind值为255时例外。

对于任务id0000(notask),从机应返回id0000(noresponse)。

主机收到响应数据报后不需要通知从机。

  3.2.1.2sp:

参数改变报告

  pke的第11位sp为参数改变报告标志。

当某个参数值(pwe)改变时,从机向主机发送参数改变报告。

所有参数都在pbe中被定义为主动或被动参

  bitno:

ak:

任务和响应idsp:

参数改变报告pnu:

参数号

  数,只有主动参数改变时从机才报告。

过程如下:

  正常的任务/响应顺序被中断,响应数据报不再是对上一任务的响应,其id被设为1001~1100(parameterchangereport),改变的参数编号放在pnu中,数值放在pwe中,同时改变sp位(0→1或1→0)。

主机接收后将sp置为与此响应数据报相同,作为确认消息发送给从机。

从机不断发送同一参数改变报告,直到收到确认数据报后才恢复任务执行,或者如果还有其他参数改变,则发送下一个参数改变报告。

  若是一个任务数据报同时改变了所有的参数值(ind=255),而从机只能发定长数据报时,响应帧中不发送改变后的参数值,只是置ind为255。

  关于参数改变的例子请见第c-17页。

  3.2.1.3pnu:

参数号

  参数及其编号各种设备各不相同,需在手册中查找。

  3.2.2ind索引

  索引ind在如下任务中会被用到:

读写参数描述pbe;读写数组中的值;读写文本。

  ind为1个字长,但只有0-7位才表示索引值。

8、9位为读写文本扩展。

10-15位各种设备自定义。

  详细使用情况见第c-19至c-22页。

  3.2.3pwe参数值

  用以存放参数值,其长度和内容详见第c-23、24页。

  4.pzd区

  pzd区独立于pkw区,是有效数据的第二部分。

pzd区的长度由pzd数据个数和大小(字,双字)决定。

在控制面板上设定后pzd区长度即固定,但不超过16个字。

也可以不传送pzd,则pzd长度设为0。

  控制字和状态字总在pzd1,主要设定值和实时值在pzd2,其他控制字、状态字、设定值和实时值均在pzd3-pzdn。

  控制字、状态字各位的意义见第c-27~c-31页。

  关于通信的例子见第c-38页。

  篇二:

plc通信协议

  一、通信原理分析1.1自由口通信模式介绍

  cpu的串行通信口可以由用户程序控制,这种操作模式称为自由端口模式,当选择了自由端口模式时,用户程序可以使用接收中断,发送中断,发送指令(xmt)和接收指令(RcV)来进行通信操作。

在自由端口模式下,通信协议完全由用户程序控制,有很大的灵活性。

smb30(用于端口0)和smb130(如果cpu有两个端口,则用于端口1)用于选择波特率、奇偶校验、数据位数、通信协议。

  只有cpu处于Run模式下时,才可以进行自由端口通信,通过向smb30(端口0)和smb130(端口1)的协议选择区置1,可以允许自由端口模式。

处于自由端口模式时,ppi通信协议被禁止,此时不可以于编程设备通信(比如对程序进行监控或对cpu进行操作)当cpu处于stop模式时,自由端口被禁止,通信口自动切换为ppi协议,从新建立与编程设备的正常通信。

  在程序中可以用sm0.7(反应cpu当前方式的模式开关)来控制自由端口模式进入,当sm0.7为“0”时,模式开关处于tRem位置;当sm0.7为“1”时,模式开关处于Run位置。

只有模式开关位于Run位置时,才允许自由端口模式,当需要使用编程设备对程序进行状态监控或对cpu进行操作可以将模式开关改变到其他位置。

  1.2发送与接收指令介绍

  用xmt指令可以方便的发送一个或多个字节缓冲区的内容,最多为255个字节。

如果有一个中断服务程序连接到发送结束事件上,在发完缓冲区的最后一个字符时,则会产生一个中断(对端口0的中断事件为9,对端口1的中断事件为26),当然也可以不用中断来判断发送指令是否完成,而是监控sm4.5或sm4.6的状态,以此来判断发送是否完成。

  用RcV指令可以方便的接收一个或多个字节缓冲区的内容,最多为255个字节。

这些字符存储在接收缓冲区中。

如果有一个中断程序连接到接收完成事件上,在接收到缓冲区中的最后一个字符时,则会产生一个中断(对端口0为中断事件23,对端口1为中断事件24)。

当然还是可以不用中断事件来判断接收信息是否结束,而是通过监视smb86(端口0)或smb186(端口1)状态的变化来判断接

  收状态的结束。

当接收指令没有被激活或者是接收已经结束时,smb86或smb186为1,当正在接收时,它们为0。

  1.3Rs-485串行通信硬件实现

  图1串行通信实现

  由于s7-200plc采用Rs485标准接口,msp430开发板也是标准的Rs485接口,所以plc与msp430的连接可以直接通过一根Rs485电缆相连接。

但是由于电脑的端口为Rs232端口,所以plc与电脑的连接需要用到Rs232转Rs485,硬件连接如图1。

  二、通信协议设计

  图2plc与单片机通信结构图

  如图2示:

  1、plc与单片机采用自由口通信模式,plc与单片机之间是主从关系。

s7-200的通信端口是半双工Rs-485芯片,发送指令和接收指令不能同时有效,其通信采用主从轮询的方式:

plc始终处于主导地位,始终具有初始传送优先权,所有通讯均由plc来启动,向从站发送数据或者从从站中读取数据都是主站以命令帧形式发送。

plc与单片机初始化状态时均处于接收信息状态

  2、plc可以主动的向各单片机发送数据,各单片机依据plc所发数据的站地址来区分该信息是否该自己响应。

单片机在需要主动向plc发送数据的时候,

  必须先向plc发送申请。

plc在接收到某个单片机的申请信号后,会根据实际情况先向所有单片机发送禁止向主机发送数据的命令,然后向申请通讯的单片机发送命令允许其发送数据给主机。

plc接收完该单片机的数据后,再向所有单片机发广播允许所有单片机向其发送申请。

  2.1通信设备参数设置

  s7-200系列plc(cpu226)与自由口模式通信有关的寄存器为smb30、smb130及其它特殊寄存器,它们主要用于通讯方式的设置与运行管理。

  在本次设计中,用到cpu226端口0,其通讯控制由smb30设置。

  smb30=16#09(00|0|010|01),即:

无奇偶校验(00)、每个字符8位(0)、波特率为9600bit/s(010)、自由口协议(01)。

  2.2数据格式2.2.1广播

  plc作为主站,可以直接向单片机发送数据;而单片机作为从站不能主动向plc发送数据。

当单片需要主动向plc发送数据的时候,可先向plc发送申请。

plc接收到申请以后,判断此时通讯通道是否空闲,如果空闲则响应申请,并向所有单片机广播此时通信繁忙不允许发送申请,然后只允许已发送申请的单片机发送数据;当plc与该单片机通讯完毕后,plc向所有单片机发广播,此时通信空闲,允许单片机发送申请。

同时,当单片机接收到广播消息的时候,首先判断是通信繁忙的信号还是通信空闲的信号,只有当接收到了通信空闲信号时,才可以向plc发申请。

单片机对plc的广播信号不做反馈处理。

  通信忙碌(字符@,ascii码为64)、通信空闲(字符$,ascii码为36),单片机在接收到@时,不可向plc发送申请。

只有当接收到$且需要向plc传输数据的时候才能发送申请。

  广播数据格式:

  2.2.2plc发送数据格式

  经过分析得知:

  plc向单片机发送的数据包括两种,一种是控制单片机动作的控制信号;另一种是当接收到单片机发送来的数据以后,经过比较校验要发

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1