西门子模块6ES7231-0HF22-0XA0实体经营
西门子模块6ES7231-0HF22-0XA0实体经营
1、RS485 串口通信
第三方设备大部分支持,西门子S7 PLC 可以通过选择自由口通信模式控制串口通信。简单的情况只用发送指令 (XMT )向打印机或者变频器等第三方设备发送信息。不管任何情况,都必须通过 S7 PLC 编写程序实现。当选择了自由口模式,用户可以通过发送指令(XMT )、接收指(RCV)、发送中断、接收中断来控制通信口的操作。
2、PPI 通信
PPI 协议是S7-200CPU 基本的通信方式,通过原来自身的端口 (PORT0 或 PORT1)就可以实现通信,是 S7-200 CPU 默认的通信方式。PPI 是一种主-从协议通信,主-从站在一个令牌环网中。在CPU内用户网络读写指令即可,也就是说网络读写指令是运行在PPI 协议上的。因此 PPI 只在主站侧编写程序就可以了,从站的网络读写指令没有什么意义。
3、MPI 通信
MPI通信是一种比简单的通信方式,MPI网络通信的速率是19.2Kbit/s~12Mbit/s,MPI网络多支持连接32个节点,大通信距离为50M。通信距离远,还可以通过中继器扩展通信距离,但中继器也占用节点。MPI网络节点通常可以挂S7-200、人机介面、编程设备、智能型ET200S及RS485 中继器等网络元器件。西门子 PLC 与 PLC 之间的 MPI 通信一般有3种通信方式:
1) 全局数据包通信方式
2) 无组态连接通信方式
3) 组态连接通信方式
4、PROFIBUS-DP 通信
PROFIBUS-DP现场总线是一种开放式现场总线系统,符合欧洲标准和。PROFIBUS-DP 通信的结构非常精简,传输速度很高且稳定,非常适合PLC 与现场分散的 I/O 设备之间的通信。
5、以太网通信
以太网的核心思想是使用共享的公共传输通道,这个思想早在1968 年来源于厦威尔大学,1972 年,Metcalfe 和 David Boggs (两个都是网络专家)设置了一套网络,这套网络把不同的ALTO计算机连接在一起,同时还连接了EARS 激光打印机。这就是世界上个个人计算机局域网,这个网络在1973 年5月22日运行。Metcalfe 在运行这天写了一段备忘录,备忘录的意思是把该网络改名为以太网(Ethernet),其灵感来自于“电磁辐射是可以通过发光的以太来传播”这一想法。1979 年,DEC、Inbbb 和 Xerox 共同将网络标准化。1984年,出现了细电缆以太网产品,后来陆续出现了粗电缆、双绞线、CATV同轴电缆、光缆及多种媒体的混合以太网产品。以太网是目前世界上流行的拓朴标准之一,具有传播速率高、网络资源丰富、系统功能强、安装简单和使用维护方便等很多优点
SIEMENS S7-300/400系列PLC共有5种定时器指令,它们是:S_PULSE(脉冲定时器)、S_PEXT(扩展脉冲定时器)、S_ODT(接通延时定时器)、S_ODTS(保持型接通延时定时器)、S_OFFDT(断电延时定时器)。下面分别说明这5种定时器指令的区别。 1、S_PULSE(脉冲定时器) 脉冲定时器的时序图如下: 其工作特点为:输入为1,定时器开始计时,定时位为1;计时时间到,定时器停止工作,定时位为0。如在定时时间未到时,输入变为0,则定时器停止工作,定时器位为变为0。 2、S_PEXT(扩展脉冲定时器) 扩展脉冲定时器的时序图如下: 其工作特点为:输入从0→1时,定时器开始工作计时,定时器位为1;定时时间到,定时器位为0。在定时过程中,输入信号断开不影响定时器的计时(定时器继续计时)。 3、S_ODT(接通延时定时器)接通延时定时器的时序图如下: 其工作特点为:输入信号为1,定时器开始计时(定时器位为0);计时时间到,定时器位为1。计时时间到后,若输入信号断开,则定时器位变为0。如在计时时间未到时,输入信号变为0,则定时器停止计时。 4、S_ODTS(保持型接通延时定时器) 保持型接通延时定时器的时序图如下: 其工作特点为:输入信号为1,定时器开始工作并计时,计时时间到,定时器位为1。输入信号只起一个触发定时器工作的作用,在计时过程中输入信号断开不影响定时器计时和定时器位。定时器位只有使用复位指令才能变为0并触发下一个定时器定时工作。 5、S_OFFDT(断电延时定时器) 断电延时定时器的时序图如下: 其工作特点为:输入信号由0→1时,定时器位为1(但定时器不开始计时);当输入信号由1→0时,定时器才开始计时,计时时间到,定时器位变为0。在计时过程中,输入信号由0→1将复位定时器,当由1→0时重新开始计时。
S7-200控制Micromaster 变频器的标准的USS指令,采用RS485接口方式,通过PLC可以方便地控制和监测Microaster变频器的运行和状态。
在使用USS协议和西门子变频器通讯时,需注意以下几项:
(1)USS协议是使用PLC的0端口和变频器通讯的,对于有两个端口的S7系列PLC要注意不要使用错误的端口号,而且当端口0用于USS协议通讯时,就不能再用于其它的目的了,包括与STEP7 Micro/win的通讯;
(2)在编程时,要注意使用的V存储器不要和给USS分配的冲突。在USS协议中使用的是VW4725~VW5117之间的V存储器,建议在编写程序时,尽量不要使用这个区域附近的V存储器,以防出现不可预料的情况。
USS协议编程顺序如下:
(1)使用USS_INIT指令初始化变频器。包括指定端口0用于USS协议,通讯的波特率和激活的变频器号等。程序只能通过一次启动或改变USS参数。此程序段可以在程序初始化子程序中完成;
(2)使用DRV_CTRL激活变频器。每条DRV_CTRL只能激活一台变频器。而其它USS指令,如:READ_RPM(读变频器参数)、WRITE_RPM(写变频器参数)可以任意添加;
(3)配置变频器参数,以便和USS指令中指定的波特率和地址相对应。
(4)连接PLC和变频器间的通讯电缆。需要注意的是,因为是通讯,所以连线时一定要注意动力线和通讯线分开布线,并且通讯线要使用短而粗的屏蔽电缆,且屏蔽层要接到和变频器相同的接地点,否则会给通讯造成干扰,导致变频器不能正常运行。
通讯电缆的连线:PLC端“D”型头,1接屏蔽电缆的屏蔽层,3和8接变频器的两个通讯端子。在干扰比较大的场合,接偏置电阻。如图所示:
S7系列的USS协议指令是成型的,我们在编程时不必理会USS方面的子程序和中断,只要在主程序调用USS指令就可以了。
西门子S7-1200的IEC格式的定时器属于功能块。在插入定时器指令时,要求创建一个16字节的IEC_Timer数据类型的DB结构(即背景数据块),来保存有关的数据。在功能块中,可以事先创建一个IEC_Timer数据类型的静态变量(多重背景),然后将它指定给定时器指令。
CPU没有给任何特定的定时器指令分配专门的资源。每个定时器使用DB结构和一个连续运行的内部CPU定时器(我的理解是一个硬件定时器)来执行定时。
在定时器指令的输入IN的上升沿启动定时器时,连续运行的内部CPU定时器的值将被复制到为该定时器指令分配的DB结构的元素START(起始值)中。
该起始值在定时器继续运行期间将保持不变,以后将在每次更新定时器时使用。以下条件时将会执行定时器更新:
1)执行定时器指令(TP、TON、TOF 或 TONR);
2)定时器结构的元素ELAPSED(经过的时间)或位输出Q作为其它指令的参数,该指令被执行。
更新定时器时,将从内部CPU定时器的当前值中减去上述起始值,得到经过的时间ELAPSED。再将ELAPSED与预设值PT进行比较,以确定定时器的位输出Q的状态。然后更新该定时器的DB结构的元素ELAPSED和Q。达到预设值PT后,定时器不会继续累加经过的时间ELAPSED。
STEP 7 Basic的V11版与V10.5版相比,增加了类似于S7-300/400的定时器线圈指令。
从上述的定时器内部的定时机制可知,在使用定时器时,其定时精度与CPU的扫描周期有很大的关系。在CPU两次更新定时器之间,定时器的输入、输出参数保持不变。
为了验证上述结论,在FB1中调用定时器指令TP,在OB1中用I0.1作为调用条件,调用FB1。用监视表格监视定时器的输出Q和经过的时间ET,用输入IN的上升沿启动定时器后,如果I0.1为0状态,没有调用FB1和执行定时器指令,定时器的输出Q和经过的时间ET保持不变。只有在调用FB1,执行定时器指令时,ET的值才会变化。
一.功能介绍
英威腾CHV系列矢量变频器内置的MODBUS(从站)通信协议,配合CHV系列变频器专用通讯卡,可非常方便的实现远程通讯控制功能。通讯卡上提供RS232及RS485两种物理通讯端口,用户可通过设置卡上的跳线选择。
本文以西门子S7-200系列PLC为例,介绍PLC与CHV矢量变频器建立通讯并实现对变频器起停、频率给定、监控等功能的控制。
变频器作为MODBUS协议从站接收来自CPU224 PLC的通信指令,。
CHV系列矢量变频器在与CPU224通信前须做好以下准备工作:
1.确认已安装好CHV系列矢量变频器的通讯卡,并将卡上的端口跳线置于RS485端;
2.用一根带9针阳性插头的串口通信电缆连接在CPU224 PLC的自由通信口端,电缆另一端的第5、3、8线分别接在CHV变频器RS485通讯卡的GND、485+、485-端子上,其余线屏蔽不用;
3.预先设置变频器以下参数:
PC0.0=1 //变频器通讯地址为1
PC0.1=3 //通讯波特率9.6K
PC0.2=1 //通讯数据偶校验
P0.01=2 //变频器的运行指令采用通讯方式
P0.03=7 //变频器的A频率设定采用通讯方式
二.PLC内存使用说明
西门子S7-200系列PLC的自由通讯端口编程必定会用到两个指令,即XMT(发送)指令和RCV(接收)指令。编写程序时需要为这两个指令指定数据缓冲区,一般以低位数为0的地址作为数据缓冲区的起始地址。
1.发送指令XMT缓冲区(写/读)
VB100 //xmt指令要发送的字节个数
VB101 //变频器通讯地址(01)
VB102 //modbus功能码(06/03)
VB103 //变频器被写地址高位/变频器被读起始地址高位
VB104 //变频器被写地址低位/变频器被读起始地址低位
VB105 //被写数据高位/被读数据字个数高位
VB106 //被写数据低位/被读数据字个数低位
VB107 //被发送数据CRC低位
VB108 //被发送数据CRC高位
2.接收指令RCV缓冲区
VB200 //rcv指令要接收的字节个数
VB201 //变频器地址(01)
VB202 //modbus功能码(06/03)
VB203 //变频器被写地址高位/被读数据字节个数高位
VB204 //变频器被写地址低位/被读数据字节个数低位
VB205 //被写数据高位/被读数据高位
VB206 //被写数据低位/被读数据低位
VB207 //被接收数据CRC低位
VB208 //被接收数据CRC高位
VB217 //被接收数据CRC验算低位
VB218 //被接收数据CRC验算高位
2.CRC校验子程序(SBR0)
英威腾CHV系列矢量变频器内置的MODBUS协议采用RTU传输格式,该格式使用CRC校验方式对每次发出或接收的数据帧进行校验。因此,该子程序使用了多个局部变量,以方便其它子程序调用。
在西门子STEP 7-Micro/Win 编程环境下(如图一),需要在该子程序的局部变量表中预先设定以下局部变量:
(1)输入型局部变量(VAR_bbbbb)
1d_0:DWORD; // 待发送数据地址指针变量
lw_4:WORD; // 待发送数据字节个数变量
(2)输出型局部变量(VAR_OUTPUT)
lb_6:BYTE; // CRC校验值高位变量
lb_7:BYTE; // CRC校验值低位变量
(3)临时局部变量(VAR)
lw_8:WORD; // 待发送数据字节个数计数变量
lw_10:WORD; // 待发送数据每字节8位二进制数计数变量
Network 1
LD SM0.0
MOVW 16#FFFF, LW6 //将16位CRC校验寄存器LW6全置为1
Network 2
LD SM0.0
FOR LW8, +1, LW4 //对待发送数据字节个数(LW4)计数(LW8)循环
Network 3
LD SM0.0
XORB *LD0, LB7 //使待发送数据的个字节(*LD0)与
//CRC校验寄存器低位字节(LB7)进行异或运算
Network 4
LD SM0.0
INCD LD0 //ld_0指向待发送数据的下一个地址
Network 5
LD SM0.0
FOR LW10, +1, +8 //对每字节8位二进制数计数(LW10)循环
Network 6
LD SM0.0
SRW LW6, 1 //CRC校验寄存器LW6右移一位
Network 7
LD SM1.1 //若移位后的溢出值SM1.1为1
XORW 16#A001, LW6 //则使值16#A001与LW6进行异或运算
Network 8
NEXT //结束每字节8位二进制数计数循环
Network 9
NEXT //结束每数据帧字节个数计数循环 3. 初始化子程序(SBR1)
该程序在PLC的个扫描周期运行,主要是设置CPU224自由端口的通信格式、数据接收格式及复位各寄存区(参见西门子S7-200编程手册)。
通信格式内容包括:波特率9.6K、每字节位数8位、偶校验等(注意与变频器一致)。
数据接收格式完全参照MODBUS RTU格式设定,以不少于3.5个字节传输时间的通信口空闲间隔作为数据接收的开始及结束信号。根据协议,PLC在准备接收数据前会先监测通信口是否空闲,如连续空闲时间超过了3.5个字节的传输时间,则PLC默认数据接收开始,此后通讯口上出现的信息即被认为是一个数据帧的内容。同理,随着一个数据帧的后一个字节传输完成,又会出现一个3.5字节传输时间的空闲间隔,来表示一个数据帧传输的结束。(参见MODBUS协议标准及CHV系列矢量变频器通讯卡使用说明书)
对9.6K的通信波特率来说,3.5个字节传输时间约为5ms左右。因该程式的每个指令只准备接收一个数据帧的回馈信息,所以接收数据前的空闲检测时间可设为0,即PLC在发出数据后立即开始接收数据,但一个数据帧的传输结束空闲检测时间仍需设为5ms以上。
Network 1
LD SM0.0
MOVB 16#49, SMB30 //设置自由通信口格式
MOVW +0, SMW90 //空闲行间隔检测时间0ms
MOVW +5, SMW92 //字符间定时器超时检测时间5ms
MOVB 20, SMB94 //接收信息的大缓冲区20字节
MOVB 148, SMB87 //设置自由通信口的数据接收格式
FILL +0, QW0, 1 //输出印象寄存区复位
FILL +0, MW0, 1 //标志寄存区复位
FILL +0, VW100, 5 //发送缓冲区复位
FILL +0, VW200, 5 //接收缓冲区复位
ATCH INT_0, 23 //接收完成中断
ATCH INT_1, 9 //发送完成中断