变频器与PLC的通信PPT课件_第1页
变频器与PLC的通信PPT课件_第2页
变频器与PLC的通信PPT课件_第3页
变频器与PLC的通信PPT课件_第4页
变频器与PLC的通信PPT课件_第5页
已阅读5页,还剩51页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、变频器与PLC的通信PLCPLC基本结构基本结构程序/数据存储器处理器数字模拟脉冲数字模拟编程终端(PC或专用编程器)PLC基本结构有些比较简易的PLC不全部具备上述的模块,用户可视应用环境选择选配模块。选配模块时注意电源模块的供电能力。通信口PLCPLC的程序执行的程序执行一般情况下,PLC按顺序循环扫描,同时用中断程序处理中断事件。输入存储器随着物理输入状态的变化而更新执行用户编写的程序由输出存储器更新物理输出的状态检查存储器中的程序可否执行,RUN/STOP变化否以及其他的系统参数等内部处理读取输入程序执行更新输出通信准备工作通信准备工作1、根据用户的需求选择合适的PLC,PLC必须具备

2、RS-232或RS-485通信接口或该 PLC有能提供该接口的可选件,如果PLC只提供RS-232接口,用户又要求采用 RS-485通信,则需选择RS232/485转换器。2、准备用于通信的接口(RS-232/485)必须能够支持自由协议通信(有的PLC 又称无协议通信),该类通信的特点是数据格式、波特率、帧起始字节、帧 结束字节、帧字节长度、通信延时、通信超时等通信要素可以由用户设定, 这里我们默认选用RS485接口。3、设置变频器的通信参数(控制方式,频率给定方式,从机地址,通信数据 格式,波特率等)。4、接线。接线包括两部分,一部分是PLC与编程设备如PC、专用编程器之间 的接线,详情需

3、参考PLC说明书;另一部分是PLC与变频器之间的接线,该 部分的接线原则请参考本次培训的通信基础部分。5、需要注意的是,不能带电接线,否则容易损坏PLC或计算机通信口。特别 是当PLC或编程设备与变频器通信只能提供一个通信口时。在调试程序时 候必须等PLC的电源指示灯熄灭后,才能进行通信口的插拔,而不仅仅 是拔掉PLC的电源。通信准备工作通信准备工作6、在进行编程工作之前,必须先使编程设备(PC或专用编程器)与PLC互连 互通。这可能同时需要对PLC,编程电缆以及编程设备三者进行设置。编程电缆编程电缆编程电缆大多是PLC厂家提供, 也有一些厂商(如OMRON)采用常用的RS-232结构,以减轻

4、用户费用,因此也可以自制,请根据厂家要求选择。编程设备与编程设备与PLCPLC通信用通信口的设置通信用通信口的设置有一部分厂商将PLC与编程设备的通信设置放在编程电缆的拨码开关上,如西门子,但绝大多数厂家都支持在编程软件中设置,如通信口的选择、数据格式、波特率等,注意该设置与编程电缆配置必须吻合。PLCPLC与变频器通信用通信口的设置与变频器通信用通信口的设置该部分必须与变频器的通信设置一致,用户还必须注意当两个通信口的物理部分一样时,编程接口和变频器到相应口的接线不要混淆。通信准备工作通信准备工作PLCPLC通信程序的结构通信程序的结构程序初始化,包括各种控制寄存器,数据区,输入输出,循环时

5、间等等串口初始化:包括数据格式,波特率,帧长度,首尾字节,延时等等,允许中断否用户程序处理:按程序编排的顺序执行结束开始发中断程序其它中断程序收中断程序需求分解需求分解1、编程之前,首先需要弄清楚用户的需求,将用户的需求分解为一个一个具体 的任务,并为该任务分配相应的触发信号及发生触发条件后程序应采用的动 作。2、动作对变频器通信来讲就是相应的控制命令或查询命令以及PLC输出的结果 。这类似计算机编程之前先画一个流程图。任 务 1 2 3 n用 户 需 求1、对某一脉冲信号记数,到达给定数目后触发输 出2、检测X1信号,如发生变化.n、每100mS查询变频器当前运行频率例:例:要求PLC能控制

6、所有联机的变频器的起、停,并能查询2#变频器当前的运行频率,同时对查询频率命令的所有发送次数和有效的接收次数进行统计,以确定系统的通信性能。需求分解需求分解用 户 需 求功能1:X1上升沿广播启动所有变频器,发广播帧功能2:X1下降沿广播停止所有变频器,发广播帧功能3:利用系统提供的脉冲信号触发频率查询命令,并接 收变频器返回的当前频率。功能4:系统提供的脉冲信号每触发一次,发送次数增1, PLC每有效接收一次,接收次数增1S7-200-CPU226 PLCS7-200-CPU226 PLC介绍介绍S7-200是西门子的一种小型PLC,CPU226是其中较好的一种,以下是S7-200-CPU2

7、26的主要技术指标:特性:特性:外形尺寸程序存储器用户数据存储器用户存储器类型数据后备典型值190X80X624096字2560字EEPROM190HI/OI/O:本机数字量I/O映像区模拟量I/O映像区24入/16出,最多扩展7个模块128入/128出32入/32出S7-200-CPU226 PLCS7-200-CPU226 PLC介绍介绍通信:通信:通信口数量 支持协议2个RS-485 D型接口PPI,DP/T,自由口,NETR/NETW PORT 0 和 1其他:其他:内置高速记数器(6H/W,20KHz);2路脉冲输出;通讯发送中断2个,接收中断4个;定时器中断2个;硬件输入中断4个,

8、输入滤波器实时时钟口令保护S7-200S7-200通信控制字通信控制字端口0端口1描述SMB30格式SMB130格式MSB:7 LSB:0 p p d b b b m m SM30.76SM130.76pp:奇偶选择:00=无奇偶校验,01=偶校验,10=无奇偶校验,11=奇校验SM30.5SM130.5d:每个字符的数据位。0=8位/字符;1=7位/字符SM30.42SM130.42bbb:自由口波特率:000=38.4K;001=19.2K;010=9.6K;011=4.8K;100=2.4K;101=1.2K;110=0.6K,111=0.3KSM30.10SM130.10Mm:协议选择

9、。01=自由口协议注:每种配置都有一个停止位要实现S7-200与变频器进行RS485通讯,首先必须为所指定通讯用端口0或1配置相应控制字,格式如下:S7-200S7-200通信控制字通信控制字例:例:如与变频器通信:波特率为9.6K,1起始位,8数据,1停止位,无奇偶校验,使用PORT 0或PORT 1口,则分别设为: SMB30=00001001,即09,对应PLC语句为: SMB30=16#09SMB130=00001001,即09,对应PLC语句为:SMB130=16#09注意:注意:1、自由通讯协议只有在PLC处于运行模式下才有效,一旦PLC处于停止 状态,则端口又自动回到PPI协议状

10、态。2、对于S7-200-CPU226,共有两个PORT 口,一般我们只要使用任意一个 口即可作为PPI编程口,实现对PLC编程。如该口在用户软件中设定 为自由协议口后,一旦PLC运行,则该口和上位机之间的PPI协议立刻 无效,转为自由协议口,通讯将中断。端口0端口1描述SMB86SMB186MSB:7 LSB:0 n r e 0 0 t c pn=1,用户通过禁止命令结束接收信息r=1,接收信息结束,输入参数错误或缺少起始和结 束条件e=1,收到结束字符t=1,接收信息结束,超时c=1,接收信息结束字符数超长p=1,接收信息结束,奇偶校验错误SMB88SMB188指定一数据帧的起始字符SMB

11、89SMB189指定一数据帧的结束字符S7-200S7-200通信控制字通信控制字用户可根据变频器协议的要求设定起始字符SMB88(188)和结束字SMB89(189),也可以不指定或部分指定,如只指定结束字符,SMB89=16#0D。用户可通过SMB86的内容判断当前通信的状态。端口0端口1描述SMB90,91SMB190,191空闲线时间段,以毫秒记。只有当该时间段溢出后,PLC才开始接收字符。该时间段类似于变频器功能码设置的通信延时。对SIEMENS PLC,该时间段可为0,对有些PLC,如FX2N,还有台达的,该时间段不能为0,具体是多少和程序循环一周时间有关系。目前,只有EV2000

12、有通讯时间延时功能码,其他系列变频器还没有,如需设置该参数需使用非标程序。SMB92,93SMB192,193中间字符/信息定时器溢出值,以毫秒计,如超过该时间段,则终止接收字符。SM92是高有效字节,SM93是低有效字节。程序中SMW92=16#7F,即255毫秒。需要根据具体情况恰当地设置该值。因为当通讯出现故障,导致PLC无法收到变频器发出的帧尾时,需要靠该字设置的时间值来判断是否结束本次接收。如果不结束本此接收,则PLC无法跳出接收状态。该值相当于通信超时的时间设定。SMB94SMB194要接收的最大字符数,可以是1256,程序中设置为140。S7-200S7-200通信控制字通信控制

13、字t1tt2t0PLC发出帧变频器响应帧在图中,t0是变频器功能码设置的通信延迟时间,该时间必须大于等于在PLC的SMW90中设置的空闲线事件段,否则,PLC将遗失变频器响应帧的头几个字节而导致错误。同时,用户也应恰当设置t2即SMW92,以确保当通信偶尔出现问题时能正确处理。S7-200S7-200通信控制字通信控制字端口0端口1描述SMB87SMB187MSB:7 LSB:0 en sc ec il c/m tmr bk 0 En: 1=允许接收信息,0=禁止接收信息Sc: 1=使用SMB88的值检测起始字节,0=忽略起始字节Ec: 1=使用SMB89的值检测结束字节,0=忽略结束字节il

14、: 1=通信延迟检测,C/m: 1=定时器是信息定时器,0=定时器是内部字符定时器Tmr:1,超时检测Bk: 0=忽略中断条件,1=使用中断条件来检测起始信息在PLC编程中,可结合从机变频器的通讯特点,设定SMB87,如对TD2000变频器,可设定SMB87=16#BC(10111100):允许接收信息,忽略起始字节,使用结束字符0D,通信延迟时间设为0ms,信息定时器,设置超时时间,忽略中断条件。当发生超时或奇偶校验错误时,自动结束接收过程。S7-200S7-200通信控制字通信控制字S7-200S7-200通信指令通信指令发送指令发送指令XMTXMT:激活发送数据缓冲区(TBL)中的数据。

15、缓冲区TBL的第一个数据指令了要发送的字节数,PORT口指明用于发送的端口。简单的情况下,可以只用发送指令(XMT)向其他串口设备发送信息。字符数MESSAGEXMT缓冲区格式注意:XMT指令缓冲区是不包含帧头和帧尾字符的,即使在程序中已经指定,但在发送时帧头帧尾还是发送的。SM4.5和SM4.6反映XMT的当前状态。当PORT0(PORT1)发送空闲时,特殊控制寄存器位SM4.5(SM4.6)将置1。如果有一个中断程序连接到发送结束事件上,在发完缓冲区中的最后一个字符时会产生一个中断(事件9或26)接收指令接收指令RCVRCV:该指令可以接收一个或多个(最多256)个字符,这些字符存储在用户

16、指定的缓冲区中。RCV缓冲区格式:结束字符EGASSEM起始字符字符数 如果有一个中断程序连接到接收完成事件上,在接收到缓冲区最后一个字符时,会产生接收中断(中断事件23或24)。通过此中断程序可以完成对接收信号的处理。可以通过监视前面介绍的状态字SMB86(PORT0)或SMB186(PORT1)状态的变化,来确定当前接收的状态,注意不是用中断进行信息接收。当RCV邮箱正在接收时,对应的状态字为0,接收结束或不接收时,对应的状态字不为0。S7-200S7-200通信指令通信指令中断连接与分离指令中断连接指令(ATCH)将一个中断事件和一个中断程序联系起来,并允许该事件。中断分离指令(DTCH

17、)截断一个中断事件和中断程序的联系,并禁止该中断事件。在激活一个中断程序前,必须在中断事件和该事件发生时希望执行的那段程序间建立联系。即ATCH的功能。多个中断事件可以调用同一个中断程序,但一个中断事件不能同时指定多个中断程序。全局中断指令DISI禁止所有中断,全局中断允许指令ENI允许中断。S7-200S7-200中断和通信中断和通信- -中断指令中断指令事件号8923242526中断优先级000111中断描述端口0接收字符端口0发送信息完成端口0接收信息完成端口1接收信息完成端口1接收字符端口1发送信息完成PLC为每一种中断事件指定了一个唯一的事件号,下表列出了通信相关的中断事件。我们需要

18、注意接收中断事件8和23(以PORT0为例)的区别。中断事件8是当PORT0接收到一个有效的字符后即进入中断处理程序,而接收到的字符存放在SMB2。中断事件23是接收到一完整数据帧才进入中断处理程序,接收到的字符存放在用户指定的数据区中。而完整数据帧是靠定义帧的长度或帧尾来判断的。如指定事件23,则必须用接收指令RCV。假设一可以指定帧尾的数据帧由5个字符组成,如果分别由中断事件8和中断事件23接收,则中断事件8所指定的中断程序会进入5次,而中断事件23所指定的中断程序则只进入一次。S7-200S7-200中断和通信中断和通信- -中断事件中断事件以下系统完成功能如下:1、广播起、停变频器。2

19、、对站号为2(或1)的变频器进行当前运行频率查询3、统计发送次数和有效接收次数。同时HMI显示PLC读取的结果。S7-200S7-200通信实例通信实例TD2000/3000Hiteck HMIS7-200-CPU226通信系统示意图PORT 0PORT 1注意:1、由于TD2000和TD3000的协议完全不同,所以要完成同样任务,需要 不同的程序处理方式。2、TD2000由于有固定的帧尾,可采用帧中断(中断事件号23)来进行 。在通讯发生异常时,通过奇偶校验错误或接收超时来结束接收过 程。3、TD3000用字节中断(中断事件号8)进行,在通讯发生异常时,通过 指定的定时器中断来结束接收过程。

20、4、这里必须指出的是:TD3000还是TD2000都可以采用上述两种中断方 式来完成相应的通信功能,但上述方法值得推荐。S7-200S7-200通信实例通信实例软硬件配置:Siemens PLC S7-200 CPU226,Hiteck PWS1711 HMI,TD2000变频器。PLC编程软件为 V3.1 Step7 MicroWin32。 变频器PORT-CABLE-PLC PORT0 RS485 9 Pin 485+ -3 DATA+485 - -8 DATA-HMI-COM1 9 Pin Male-CABLE-PLC PORT1 RS485 9Pin RXD/TXD 1 -3 DATA

21、+RXD/TXD 6 -8 DATA-PLC与变频器和HMI的接口连接如下图:S7-200S7-200通信实例通信实例TD2000TD2000任务分解:任务分解:广播开机触发信号:M0.0或I0.0的上升沿对应帧:7e|37|46|30|32|30|30|30|33|30|31|41|32|0D广播停机触发信号:M0.0或I0.0的下降沿对应帧:7e|37|46|30|32|30|30|30|37|30|31|41|36|0D运行频率查询SM0.5或I0.1的脉冲信号对应帧:7e|30|31|30|31|30|30|30|30|30|31|38|32|0D需正确接收变频器的反馈帧,提取频率值并

22、对发送和接收进行计数备注:触发信号都有两个,是因为既可以从端子触发,也可以由HMI来触发。SM0.5是PLC的特殊存储器位,是周期为1S,占空比50%的时钟脉冲。S7-200S7-200通信实例通信实例TD2000TD2000接收成功接收中断处理子程序定时器1中断子程序结束本次收发结束本此收发结束本此收发发送中断处理子程序定时器0中断子程序数据发送发送成功NYYNS7-200S7-200通信实例通信实例- -通信处理思路通信处理思路继续发送1、主程序:变频器地址为1,通讯控制,其他为默认设置。PLC和变频器之间的通信采用帧中断的方式进行,程序由1个主程序,6个子程序和4个中断程序构成。说明:S

23、M0.1:PLC的特殊位寄存器,它只在程序首次运行时置1,其后置0,因此,初始化部分只进行一次,这样可以避免程序每循环一次都初始化一次。|P|代表上升沿,|N|代表下降沿,必须使用沿信号作为帧发送的触发信号,如果使用电平信号触发,则在每次程序循环扫描时因触发条件都成立而触发发送。S7-200S7-200通信实例通信实例TD2000TD2000SM0.5的作用在前面已经介绍。并用VW214记录查询发送的次数。M0.1是由HMI触发的信号,表示允许查询。避免PLC一运行就开始进行频率查询。S7-200S7-200通信实例通信实例TD2000TD20002、初始化子程序SBR0SM0.0:PLC的特

24、殊寄存器位,该位始终为1,表示只要调用该子程序的条件成立,则子程序就执行。SMB30:PORT0,9.6K波特率,1起始,8数据,1停机,无校验的数据格式SMB87:允许接收功能,忽略起始字节,使用结束字符检测,允许通信延迟时间和超时时间起作用。SMB89:结束字符为0D。S7-200S7-200通信实例通信实例TD2000TD2000SMW90=0说明通信延时时间为0ms。因为目前在TD3000/TD2000/TD1000系列的标准产品中都默认通信延迟时间为0。SMW92=7F,说明通信超时时间为255ms。SMB94=140,说明允许接收的最大字符数为140。ENI:开放中断语句。因为通信

25、是通过帧中断来进行的,所以需要开放中断。下面三个语句都是初始化数据区,置0。至此,程序的初始化工作完成。S7-200S7-200通信实例通信实例TD2000TD20001、广播开机子程序SBR1(各字节意义见TD2000协议,并调用发送子程序SBR5) 说明:PLC可以使用XMT指令发送数据,可以发送一个或多个,最多256个字符。其带两个参数,一个是端口号,一个是发送缓冲区的首址,并且该首址内容指定要发送的缓冲区字符数。我们将缓冲区首址设定为VB99,其值为14,说明共发送14个字符。广播帧的内容放在VB100VB113。S7-200S7-200通信实例通信实例TD2000TD2000当广播帧

26、的全部数据都放到发送缓冲区后,调用发送子程序SBR5。2、广播停机子程序SBR2 S7-200S7-200通信实例通信实例TD2000TD2000我们可以观察到,停机广播命令和开机广播命令在程序的处理上完全一样,只是发送的具体字符不同。S7-200S7-200通信实例通信实例TD2000TD20003、频率查询子程序SBR3 S7-200S7-200通信实例通信实例TD2000TD2000频率查询命令和停机广播命令,开机广播命令在程序结构上也是完全一样,只是发送的具体字符不同。S7-200S7-200通信实例通信实例TD2000TD20004、数据帧发送子程序SBR5 使用XMT发送数据,如果

27、有一个中断程序连接到发送结束事件上,则在发完缓冲区的最后一个字符时,会产生一个中断。对端口0为中断事件9。因此本文将中断事件9连接到中断程序INT_0上。当发送完数据帧后,程序会转而执行INT_0。定时时钟在TD2000程序中无作用。S7-200S7-200通信实例通信实例TD2000TD20005、发送结束中断程序0当发送结束时,将发送结束中断和中断程序INT_0连接,一旦进入INT_0,则需断开该连接,以便下次进入。同时需在接收中断事件和接收中断程序间建立连接。还需要指明接收的首地址。PLC中PORT0的接收结束中断事件指定为中断事件23。接收指令为RCV ,其参数分别是端口号和接收数据存

28、放的首地址。在接收完成后,首地址存放的内容是所接收一帧数据的字符数。在程序中,我们指定首地址为VB116。定时中断事件在TD2000程序中没有用。S7-200S7-200通信实例通信实例TD2000TD20006、帧接收中断2进入帧接收程序后,首先断开中断事件和中断程序的连接。然后对所接收字节进行校验,如校验正确,则将接收记数加1。并对频率参数进行ASCII码到BCD码的转换。 SBR4是按照TD2000协议进行的帧校验子程序,用检查所接收数据的正确性,而后将校验结果放在VW202当中S7-200S7-200通信实例通信实例TD2000TD2000ATH是ASCII码转换到16进制码的指令,程

29、序中表示将VB130VB133(接收到变频器传来的校验码)连续四个ASCII码转换成16进制的数放在VW202当中。随后进行比较:1、接收字符数是否是18?2、校验码能否吻合?如果接收无误,则接收次数增1,并提取频率值。S7-200S7-200通信实例通信实例TD2000TD20007、校验子程序:在前述程序中,我们将接收字符放在以VB116开始的缓冲区当中,并且VB116存放接收字符的总数。根据TD2000协议,我们知道变频器反馈的字符数是18个,各字符在数据区中存放地址如下:116117118119120121122123124125126127128129130131132133134字

30、符数帧头变频器地址响应索引频率值校验码帧尾根据协议,需要对VB118VB129共12个字节求和。在程序中使用FORNEXT语句实现S7-200S7-200通信实例通信实例TD2000TD2000注意:程序采用指针进行,VB118地址是32位,因此必须用双字。累加可能会溢出,因此必须将字节转化为字后进行累加。结果存放在VW202当中。S7-200S7-200通信实例通信实例TD2000TD2000TD2000交流与讨论TD3000通信程序所要实现的功能和TD2000基本一样,它是采用字符中断形式进行,也就是每次只接收一个字符,通信参数设置和TD2000略有差别,但总体程序结构相差不多。变频器地址

31、为2,通讯控制,其他为默认设置。PLC和变频器之间的通信采用字符中断的方式进行,程序由1个主程序,6个子程序和4个中断程序构成 触发帧内容广播开机I0.0上升沿7E|7F|04|7F|13|88|9F广播停机I0.0下降沿7E|7F|04|7E|13|88|9E运行命令查询I0.1脉冲7E|02|13|88|S7-200S7-200通信实例通信实例TD3000TD3000主程序:主程序和TD2000完全一样S7-200S7-200通信实例通信实例TD3000TD30001、初始化子程序SBR0在初始化子程序中,将PORT0设置为自由口通信,9600BPS,(1、8、1、0)的数据格式,至于在T

32、D2000中设置的通信延时,超时等问题都因为用定时器中断而解决,这将在后面详细说明。因为在程序中说明所接收的字符数,所以也不用指定帧尾作为接收结束的依据。事实上TD3000也无固定的帧尾。S7-200S7-200通信实例通信实例TD3000TD30002、广播开机子程序SBR1(各字节意义见TD3000协议,并调用发送子程序SBR5) S7-200S7-200通信实例通信实例TD3000TD30003、广播停机子程序SBR2 S7-200S7-200通信实例通信实例TD3000TD30004、频率查询子程序SBR3 若VB100=7,则说明在该程序以前已有变频器控制字的存在(PLC已发出过广播

33、停机、开机、查询等命令),而查询频率不能改变当前的控制字,因此不能直接给相关字节赋值,而必须使用原先的控制字,为做到这一点,调用了子程序4。若VB1007,,说明以前PLC没有控制过变频器,则直接发停机命令,根据TD3000协议,会自动返回频率信息。S7-200S7-200通信实例通信实例TD3000TD30005、校验子程序 SBR4TD3000协议采用的是字节异或校验,校验的结果存放在VB107。S7-200S7-200通信实例通信实例TD3000TD30006、数据帧发送子程序SBR5 发送指令XMT进行数据帧的发送,其首址为VB100,值为7,存放的是需发送的字符数。在发送指令动作后,可能会出现两种情况:1、发送成功结束,产生结束中断,该事件9对应为中断事件INT_0。2、发送不成功,必须人为结束本次中断,判断发送不成功的依据是定时器T0。程序给定时器T0(SMB34)赋值30ms。目的是当发送命令执行30ms后,如果没有正常的发送结束中断事件产生,则用定时器T0中断来结束本此发

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论