6ES7221-1EF22-0XA0产品型号
在PLC及其网络中存在两类通信:一类是并行通信,另一类是串行通信,并行通信一般发生在可编程序控制器的内部,它指的是多处理器PLC中多台处理器之间的通信,以及PLC中CPU单元与智能模板的CPU之间的通信。前者是在协处理器的控制与管理下,通过共享存储区实现多处理器之间的数据交换;后者则是经过背板总线(公用总线)通过双口RAM实现通信。PLC的并行通信由于发生在PLC内部,对应用设计人员不必多加研究,重要的是了解PLC网络中的串行通信。
PLC网络是由几级子网复合而成,每级子网中都配置不同的协议,其中大部分是各公司的专用通信协议。
各级子网的通信过程是由通信协议决定的,从根本上讲,要搞清楚某级PLC子网的通信就必须彻底剖析它采用的通信协议,这个工作量很大,更何况大多数又都是各个公司的专用协议,繁琐的协议规定常会掩盖问题的本质,通常会遇到这样的情况:两个公司的两种专用协议,从协议的规定、帧格式等表面现象看可能有明显得不同,他们关于如何实现通信的思路却极为相似,如出一辙。抓住他们的同一性,就会把表面上孤立无关的事务串联起来,正是基于这样一种思想,我们引入了“通信方法”这一概念。
PLC网络的各级子网无论采用总线结构、还是环形结构,他的通信介质是共享资源。挂在共享介质上的各站要想通信,要解决共享通信介质使用权的分配问题,这就是常说的存取控制或称访问控制。
一个站取得了通信介质使用权,并不等用完成了通信过程,还有怎样传送数据的问题,这就是常说的数据传送方式,比如说采用的数据传送方式是否先建立一种逻辑连接,再传送?所采用的数据传送方式发给对方的数据是否要对方应答?发出去的数据是由一个站收,或者多个站收,还是全体接收?诸如此类就是所谓的数据传送方式。
这里所谓的通信方法=存取控制方式+数据传送方式。本来存取控制方式与数据传送方式都是通信协议有关层次的内容,这里专门把他们抽出来加以介绍。是因为用它们来描述一种通信过程与人们意念上有关的概念非常接近。对于局域网来说,存取控制方式与数据传送方式是其通信协议核心的内容。
工业局域网对实时性是有要求的,各级子网对实时性的的要求不同,通常越靠底层的子网对实时性要求越高,越靠近上层的子网对实时性的要求越低。 copyrightplc资料网
实时性通常采用“响应时间”来定量描述。响应时间是指某一系统对输入作出响应所需的时间,以ms、s、min,h为计量单位。响应时间很短,就标志着系统的实时性越好。
PLC网络中,各站通过通信子网互联在一起,当某站对子网请求通信时,他对响应是时间是有要求的,不同站对实时性的要求可能不同,同一站不同通信任务对实时性的要求也可能不同。一项通信任务的实时性得到满足是指其响应时间小于规定的时限;一个站的实时性合乎要求是指该站提出的所有通信任务在指定的时限内都能获得响应。整个通信子网的实时性符合要求是指分布在子网上每一个站的每项通信任务的实时性均得到保证。
要保证PLC网络的实时性必须满足下列三个时间约束条件:
1、必须限定每个站每次取得通信权的时间上限制,以防止某一站长时间霸占子网而导致其他各站实时性恶化。
2、应当保证在某一固定的时间周期内,通信子网上的每个站都有机会取得通信权,这将为每个站提供基本实时性。
3、对于重要的站可优先服务,对某项紧急通信任务应当给予优先处理,应当可以用静态(固定)的方式赋予某站以较高的优先权,应当可以用动态(临时)方式赋予某些紧急任务以较高的优先权。
PLC网络的实时性是由它所选用的存取控制方式来保证的。提高实时性还可以通过减少通信协议的层数来实现,一般靠近底层的子网采用只包含3层通信协议的他塌缩结构。这正是为了提高实时性。选择适当的数据传送方式对于提高实时性有明显的效果,发送数据要求对方答应,比无应答服务慢的多,要求连接又要有应答的服务则更慢,而广播式通信快。当然不能只考虑实时性,还要考虑可靠性。
可编程控制器的远程I/O链路就是一种PLC控制网络,在远程I/O链路中采用“周期I/O方式”交换数据。远程I/O链路按主从方式工作,可编程控制器带的远程I/O主单元在远程I/O链路中担任主站,其他远程I/O单元皆为从站。在主站中设立一个“远程I/O缓冲区”,采用信箱结构,划分为n个分箱与每一个从站一一对应,每个分箱再分为两格,一格管发送,一个管接收。主站中负责通信的处理器采用周期扫描方式,按顺序与各从站交换数据,把与其对应的分箱中发送分格的数据送给从站,从从站中读取数据存入与其对应的分箱的接收分格中,这样周而复始,是主站中的“远程I/O缓冲区”得到周期性的刷新。
在主站中PLC的CPU单元负责用户程序的扫描,它按照循环扫描方式进行扫描处理,每个周期都有一段集中进行I/O处理,这时它对本地I/O单元及远程I/O缓冲区进行读写操作。PLC的CPU单元对用户程序的周期性循环扫描,与PLC负责通信的处理器对各远程I/O单元的周期性扫描是异步进行的。
PLC的CPU单元没有直接对远程I/O单元进行操作,由于远程I/O缓冲区获得周期性刷新,PLC的CPU单元对远程I/O缓冲区的读写操作,就相当于直接访问了远程I/O单元。
主站中负责通信的处理器采用周期扫描方式与各从站交换数据,使主站中“远程I/O缓冲区”得到周期性刷新,这样一种通信方式既涉及到周期又涉及到I/O,被称为“周期I/O方式”,这种通信方式要占用PLC的I/O区,只适用于少量数据的通信。从表面看来远程I/O链路的通信就好像是PLC直接对远程I/O单元进行读写操作,简单、
全局I/O方式是一种串行共享存储区通信方式,它主要用于带有链接区的PLC之间的通信。
全局I/O方式的通信原理如图1所示。在PLC网络的每台PLC的I/O区中各划出一块来作为链接区,每一个链接区采用如图1所示的邮箱结构。相同编号的发送区与接收区大小相同,占用相同的地址段,一个为发送区,其它皆为接收区。采用广播方式通信。PLC1把1#发送区的数据在PLC网络上广播,PLC2,PLC3接收到后把它接收下来存入各自的1#接收区中,PLC2把2#发送区的数据在PLC网络上广播,PLC1,PLC3接收到后把它接收下来存入各自的2#接收区中,PLC3把3#发送区数据在PLC网上广播,PLC1,PLC2把它接收下来存入各自的3#接收区中。显然通过上述广播通信过程,PLC1,PLC2,PLC3的各链接区中数据是相同的,这个过程称为等值变化过程,通过等值化通信使得PLC网络中的每台PLC链接区中的数据保持一致。它既包含着自己送出去的数据,也包含着其它PLC送来的数据。由于每台PLC链接区大小一样,占用的地址段相同,每台PLC只要访问自己的链接区,就等于访问了其它PLC的链接区,也就相当与其他PLC交换了数据。这样链接区就变成了名副其实的共享存储区,共享区成为各PLC交换数据的中介
当然这里的共享存储区与并行总线的共享存储区在结构上有些差别,它把物理上分布在各站的链接区,通过等值化通信使其好像重叠在一起,在逻辑上变成一个存储区,大小与一个链接区一样,这种共享存储区称为串行共享存储区。
链接区可以采用异步方式刷新(等值化),也可以采用同步方式刷新。异步方式刷新与PLC中用户程序无关,由各PLC所带的通信处理器按顺序进行广播通信,周而复始,使其所有链接区保持等值化,同步方式刷新是由用户程序中对链接区的发送指令启动一次刷新,这种方式只有当链接区的发送数据变化时才刷新(等值化),这样事半功倍。
全局I/O方式中的链接区是从PLC的I/O区划分出来的,经过等值化通信变成所有PLC共享(全局共享),称为“全局I/O方式”。这种方式下PLC直接用读写指令对链接区进行读写操作,简单、方便、快速,但应注意在一台PLC中对某地址的写操作在其他PLC中对同一地址只能进行读操作。与周期I/O方式一样,全局I/O方式也要占用PLC的I/O区,这适用于少量数据的通信。
主从总线通信方式又称为1:N通信方式,这是在PLC通信网络上采用的一种通信方式。在总线结构的PLC子网上有N个站,其中只有一个主站,其他皆是从站,也就是因为这个原因主从总线通信方式又称为1:N通信方式。
主从总线通信方式采用集中式存取控制技术分配总线使用权,通常采用轮询表法,所谓轮询表是一张从机号排列顺序表,该表配置在主站中,主站按照轮询表的排列顺序对从站进行询问,看它是否使用总线,从而达到分配总线使用权的目的。
为了保证实时性,要求轮询表包含每个从站号不能少于一次,这样在周期轮询时,每个从站在一个周期中至少有一次机会取得总线使用权,从而保证了每个站的基本实时性,对于实时性要求比较高的站,可以在轮询表中让其从机号多现几次,这样就用静态的方式,赋予该站较高的通信优先权。在有些主从总线中轮询表法与中断法结合使用,让紧急任务可以打断正常的周期轮询而插入,获得优先服务,这就是用动态赋予某项紧急任务以较高优先权。
存取控制只解决了谁使用总线的问题,获得总线的从站还有如何使用总线的问题,即采用什么样的数据传送方式。主从总线通信方式中有两种基本的数据传送方式,一种是只允许主从通信,不允许从从通信,从站与从站要交换数据,必须经主站中转。另一种是既允许主从通信也允许从从通信,从站获得总线使用权后安排主从通信,再安排自己与其他从站(即从从)之间的通信。
令牌总线通信方式又称为N:N通信方式。在总线结构上的PLC子网上有N个站,它们地位平等没有主站与从站之分,也可以说N个站都是主站,称之为N:N通信方式。
N:N通信方式采用令牌总线存取控制技术。在物理总线上组成一个逻辑环,让一个令牌在逻辑环中按一定方向依次流动,获得令牌的站就取得了总线使用权,令牌总线存取控制方式限定每个站的令牌有时间,保证在令牌循环一周时每个站都有机会获得总线使用权,并提供优先级服务,令牌总线存取控制方式具有较好的实时性。
取得令牌的站采用什么样的数据传送数据方式对实时性影响非常明显。如果采用无应答数据传送方式,取得令牌的站可以立即向目的站发送数据,发送结束,通信过程也就完成了。如果采用有应答数据传送方式,取得令牌的站向目的站发送完数据后并不算通信完成,必须等目的站获得令牌并把答应帧发给发送站后,整个通信过程结束。这样一来响应明显增长,而使实时性下降。
有些令牌总线型PLC网络的数据传送方式固定为一种,有些则可由用户选择。
浮动主动通信方式又称N:M通信方式,它适用与总线结构的PLC网络。设在总线上有M个站,其中N个为主站,其余为从站(N<M),故称之为N:M通信方式。
N:M通信方式采用令牌总线与主从总线相结合的存取控制技术。把N个主站组成逻辑环,通过令牌在逻辑环中依次流动,在N个主站之间分配总线使用权,这就是浮动主站的含义。获得总线使用权的主站再按照主从方式来确定再自己的令牌持有时间内与哪些站通信。一般在主站中配置有一张轮询表,可按轮询表上排列的其它主站号及从站号进行轮询,获得令牌的主站对于用户随机提出的通信任务可按优先级安排在轮询之前或之后进行。
获得总线使用的主站可以采用多种数据传送方式与目的站通信,其中以无应答无连接方式速度快。
CSMA/CD(carrier-sense multiple accesswith collisiondetection)通信方式是一种随机通信方式,适用于总线结构的PLC网络,总线上各站地位平等,没有主从之分。采用CSMA/CD存取控制方式,该控制方式用通俗的语言描述为“先听后讲,边讲边听”。所谓先听后讲是指要求使用总线的各站,在发送数据之前必须先监听,看看总线是否空闲,确认总线空闲后再向总线发送数据。“先听后讲”并不能完全避免冲突,如果仍发生了冲突,则不能等到差错校验时再发现,这样对通信资源浪费太严重,而要采用“边讲边听”。发送数据的站,一边发送,一边监听,若发现冲突,立即停止发送,并发出阻塞音,通知网上的其它站发生了冲突,冲突双方采用取随机数代入指数函数的退避算法来决定重新上网时间,解决冲突。
CSMA/CD存取控制方式不能保证在一定时间周期内,PLC网上每个站都可获得总线使用权,也不能用静态方式赋予某些站以较高优先权,不能用动态方式赋予某些紧急通信任务以较高优先权,这是一种不能保证实时性的存取控制方式,它采用随机方式,方法本身简单,见缝插针,只要总线空闲就抢着上网,通信资源利用率高,在PLC网络中CSMA/CD通信法适合用于上层生产管理子网。
CSMA/CD通信方式的数据传送方式可以选用有连接、无连接、有应答、无应答及广播通信中的每一种,这可按对通信速度及可靠性的要求取舍。
有少量的PLC网络采用环形拓扑结构,其存取控制采用令牌法,具有较好的实时性。图1表示了令牌工作过程及其帧结构。
(a)令牌环
暂停位 | 目的地址 | 源地址 | 控制信息 | DATA | 差错检验 | ACK | 令牌 |
(b)帧结构
图1 令牌环通信方式
在图1(a)中,令牌在物理环中按箭头指向,一站接一站的传送,获得令牌的站才有权发送数据,设B站要向D站发送数据。当令牌传送到B站时,B站把令牌变为暂停证,把待发送数据按图1(b)表示的格式加在暂停证后面从B站发送出去,后再加上令牌一起发往C站。此帧信息经C站中转后到达D站,D站把自己的本站地址与帧格式中目的地址相比较,发现两者相同,表明此帧信息事发给D站的,对此帧信息作差错校验,并把校验结果以肯定应答或否定应答填在ACK段中。把此帧信息复制下来,再把带有应答的帧继续向下传送,经A站中转到达B站。B站用自己的本站地址与帧中源地址相比较,发现两者相同,表明此帧是自己发出的,再检查ACK段。若为否定应答,要有组织重发,若为肯定应答,则把此帧从环上吸收掉,只剩下令牌在环中继续流动。
在图1(b)的帧格式的后为一令牌,当某站获得此令牌后也同样可以发送数据,把此令牌变为暂停证,后面带上发送的帧后再加上令牌,这时的帧格式就变成两个暂停证、两帧,再加令牌,其传送过程与一帧相似,这里不再重复,从上述过程可见,令牌环通信方式采用的是有应答数据传送方式。
一:连接两个不同的profibus网络进行通讯,2个网络的通讯速率,站地址可以不同。
二:多建立16个i/o数据交换区。
s7-300与s7-300之间的主主通讯必须使用dp/dp c couple通讯模块将两个profibus-dp网络连接起来。
对于dp/dp coupler连接的两个网段,通信速率可以不同,dp/dpcoupler非常适用于不同通讯速率的两个profibus-dp主站系统之间的数据通讯,对于通讯数据区,网络1的输入区必须和网络2的输出区完全对应,同样网络2的输入区必须和网络1的输出区完全对应,否则会造成通讯故障。
硬件的组态:
下面我们开始主站1的硬件组态:
添加机架,cpu(带dp功能的cpu)
下面我们开始往profibus网络中添加dp/dp coupler模块
下面给刚才组态的dp/dp coupler分配i/0
主站1 的硬件组态完成,别忘了保存编译
下面我们开始主站2的硬件组态:
添加机架,cpu(带dp功能的cpu)
主站2的硬件组态完成,别忘了保存编译
根据输入对输出,输出对输入的关系,我们把主站1和主站2的输入/输出的关系对照一下:
定义上主站1和主站2的硬件组态后,相应的地址对应关系也就确定了,在编程的时候无需进行任何的通讯编程,根据对应关系使用相关的点即可。
特别注意:dp/dp coupler上的硬件地址要和连接的主站上组态的地址一致(一个dp/dpcoupler是两个插口,分别对应两个主站,地址要分别和其软件组态的地址一致)
特别提示:为了防止发生错误到时cpu停机,建议在程序内添加ob82,ob85,ob86,ob122
ob82:诊断中断,如果使能一个具有诊断中断模块的诊断功能(例如断线、丢失),出现故障时调用ob82,如果程序中没有创建ob82,cpu进入停止模式。诊断中断还对cpu所有内外部故障,包括模块前连接器拔出、硬件中断丢失等作出响应。
ob85:用于处理操作系统访问模块故障、更新过程映像区时i/o访问故障、事件触发但相应的ob没有下载到cpu等事件,事件出现,cpu自动调用ob85报错,如果程序中没创建ob85,cpu进入停止模式。
ob86:用于处理扩展机架(不适用于s7-300系列)、profibus-dp主站、profibus-dp或profineti/o分布i/o系统中站点故障等事件,事件出现,cpu自动调用ob86报错,如果程序中没有创建,cpu进入停止模式。
ob122处理与i/o地址访问故障有关的事件,例如访问一个i/o模块时,出现读故障等。如果上述故障出现,在程序中没有创建ob121、ob122,cp进入停止模式。