西门子模块6ES7212-1BB23-0XB8优质产品
设备与系统描述
在某烟草企业的制丝工艺段中,PLC采用西门子S7-300系列PLC。S7-300系列PLC处理速度更快、系统资源裕量更大、通讯能力更强、性能更加稳定可靠,全面支持等时模式和运行中配置等功能,由此大幅降低了工程、培训等费用,是各种自动化功能的技术和经济性解决方案。机架上增加一个CP343-1以太网模块,用于系统和上位调度计算机通讯。
现场分布式I/O采用具有Profinet接口的西门子的ET200S系列,用于采集现场的传感器信号(如光电开关、接近开关、限位开关等)和按钮指示灯信号。
电机驱动采用西门子ET200S的单相启动器、双相启动器或软启动器,每个ET200S从站带有一个IM151-3PN接口模板(双网口),可以支持Profinet总线的级联方式,IM151-3PN接口模板的供电采用单独供电方式,保证切断控制电源时,Profinet网络不受影响,通过它就可以和PLC之间建立网络通信。
对于需要jingque定位的设备或一些专机设备,系统采用变频器对电机进行驱动。在该方案中,采用丹佛斯带Profinet总线通讯接口的现场安装的变频器FC302IP55系列产品。采用Profinet总线的级联方式。配置输入输出电抗器、RFI滤波器。变频器的动力输出线缆采用屏蔽电缆,动力输出线缆和通讯电缆的屏蔽层可靠接地。Profinet总线模板的供电采用单独供电方式,保证切断动力电源时,Profinet网络不受影响。
在现场操作员终端,操作人员通过触摸屏终端对现场设备状态进行监控,当设备出现故障或需要进行维护时,可以通过终端操作来完成模式转换、故障处理、信息维护等操作。该方案采用的是西门子触摸屏MP377,通过Profinet和PLC通讯。
对于不支持Profinet总线的器件,该方案采用Profibus总线进行通信,并由IE/PB LINK将现有的Profibus设备透明地连接到Profinet的设备。
2.
系统特点
现场总线技术在控制过程的应用,节省了大量的线缆、槽架、连接件,减少了系统的设计、调试、维护时间,方便地实现了现场控制设备之间以及设备与控制管理层之间的联系,为控制信息进入公共数据网络创造了条件。与地点无关的控制、高速通信、灵活的拓扑结构、真正的可互操作性和开放性等功能的特征,使其具有强大优势和广阔的发展前景。
采用基于工业以太网的开放式、跨供应商标准的Profinet,可实现从公司管理层直到现场层直接、透明的访问。Profinet基于现有成熟IT标准,并提供对TCP/IP的全面支持,用户能够毫不费力的与现有系统进行扩展及便捷集成。
3.
系统配置步骤
我们就以一个实例,一步一步教大家如何配置组态一个PROFINET IO系统。本实例项目是由一个S7-300 PLC ,CP343-1(支持PROFINET IO Controller)和具有PN接口的ET200S组成。
第1步,新建一个项目,插入一个Simatic 300站,如图3-1所示:
第2步,在硬件组态中插入一个CP343-1,新建一个网络连接Ethernet (1),并且配置IP地址,如图3-2所示:
第3步,在CP343-1的右键中选择“插入PROFINET IO系统",如图3-3所示:第4步,在右边的PROFINETIO设备栏内,选择实际的远程IO设备,在PROFINETIO总线上插入一个ET200S站IM151-3PN,并且给给IM151-3PN配置它的设备名“IM151-3PN",如图3-4所示:第5步,在IM151-3PN中插入相应的DI和DO模块,如图3-5所示:
第6步,选中PROFINET IO总线,右键菜单选择“目标属性",如图3-6所示:
第7步,在PROFINET IO总线的属性中,在Communication allocation(PROFINETIO)选项内可配置PROFINETIO通讯占比,当有PROFINETCBA通讯存在时,必须给PROFINETCBA通讯预留一部分通讯比例,如图3-7所示:
第8步,配置IM151-3PN的更新时间,这个更新时间是根据设备的性能决定的,性能好的设备更新时间可达1ms,有的厂商提供的PROFINETIO设备多也只能有8ms的更新时间,如图3-8所示:
第9步,配置IM151-3PN的属性,分配设备名,本例就为“IM151-3PN";设备号码本例配置为“1",Step7会自动分配,当你有2个以上的远程IO站时,设备号码不能重复,否则无法编译通过;设备的IP地址是由Step7自动分配的,你也可以手动指派IP地址;如图3-9所示:
第10步,编译硬件组态,如图3-10所示:
第11步,打开PST软件,扫描网络设备,如图3-11所示:
第12步,按照在Step7中的实际组态,分配IP地址,如图3-12所示:
第13步,下载IP地址至设备中,如图3-13所示:
第14步,下载后,设备已经有了IP地址了,如图3-14所示:
第15步,给IM151-3PN也分配IP地址,如图3-15所示:
第16步,下载硬件组态,如图3-16所示:
第17步,在线监视硬件组态,发现CP343-1有故障,原因是远程站IM151-3PN的设备名还未分配,如图3-17所示:
第18步,给IM151-3PN也分配指派设备名,如图3-18所示:
第19步,在弹出来的对话框中,选中你要指派设备名的设备,点击右边的“Assignname/指派名称"按钮,如图3-19所示:
第20步,可以看到IM151-3PN已经有了设备名(与硬件组态的设备名相同,PN IO控制器才能依靠此设备名找到它),如图3-20所示:
第21步,在线监视硬件组态,发现此时PN IO系统工作正常,如图3-21所示:
至此,如何组态PNIO系统已经介绍完毕。还有一些注意点,如果你用的PLC是S7-300系列的,使用CP卡作为PNIO控制器,都需要在程序里调用PN_SEND和PN_RECV来驱动远程IO设备。而S7-400的PLC是不需要编程的,可以直接驱动远程IO设备。
南京西门子代理商
5.1. S7-200模拟量数据格式与寻址模拟量输入/输出数据是有符号整数,占用一个字长(两个字节),地址必须从偶数字节开始。模拟量的转换精度为12位,但在PLC中表示为-32000-+32000之间的整数值(实际上数值可以是整个16位有符号整数的范围,但输入如10V/20mA被标定为对应32000,模拟量超过值一点也可以表示)。
在S7-200中,单极性模拟量输入/输出的数值范围是 0 - 32000;双极性模拟量的数值范围是-32000-+32000。
格式:
? 输入:AIW[起始字节地址]——如AIW6
? 输出:AQW[起始字节地址]——如AQW0
每个模拟量输入模块,按模块的先后顺序和输入通道数目,以固定的递增顺序向后排地址。 例如:AIW0、AIW2、AIW4、AIW6、AIW8等。
对于EM231 RTD(热电阻)两通道输入模块,不再占用空的通道,后面的模拟量输入点是紧接着排地址的。
每个有模拟量输出的模块占两个输出通道。*个模块只有一个输出AQW0,第二个模块的输出地址也应从AQW4开始寻址(AQW2被*个模块占用),依此类推。
温度模拟量输入模块(EM231 TC、EM231RTD)也按照上述规律寻址,所读取的数据是温度测量值的10倍(摄氏或华氏温度)。如520相当于52.0度。
注意: 每一模块的起始地址都可在STEP 7-Micro/WIN中的菜单“PLC >Information"里在线读到。
5.2. 模拟量滤波器S7-200允许你为每一路模拟量输入选择滤波器。一般情况下选用S7-200的模拟量滤波功能就不必再另行编制用户的滤波程序。
如果对某个通道选用了模拟量滤波,CPU将在每一程序扫描周期前自动读取模拟量输入值,这个值就是滤波后的值,是所设置的采样数的平均值。模拟量的参数设置(采样数及死区值)对所有模拟量输入通道有效。
如果对某个通道不滤波,则CPU不会在程序扫描周期开始时读取平均滤波值,而只在用户程序访问此模拟量通道时,直接读取当时实际值。
模拟量滤波器使用步骤如下:
1. 在Micro/Win 中进入View>Component>System Block,并选择AnalogInput Filters选项,进入模拟量滤波器。
2. 设置模拟量滤波器:
图1. 模拟量通道滤波设置
a.
设置模拟量采样数,例:此处设置的64表示模拟量滤波后的值为包括当前采样的前64个采样值的平均值。
b.
死区值,定义了计算模拟量平均值的取值范围
?
如果采样值都在这个范围内,就计算采样数所设定的平均值;如果当前采样的值超过了死区的上限或下限,则该值立刻被采用为当前的新值,并作为以后平均值计算的起始值(如图2所示)
?
这就允许滤波器对模拟量值的大的变化有一个快速响应
?
死区值设为0,表示禁止死区功能,即所有的值都进行平均值计算,不管该值有多大的变化
?
对于快速响应要求,不要把死区值设为0,而把它设为可预期的zui大的扰动值(320为满量程32000的1%)
c.
选择需要滤波的模拟量通道,打钩的为使能的模拟量输入,缺省设置是为所有的模拟量输入使用滤波器
d.
CPU224XP上的AIW0、AIW2(CPU本体上的模拟量输入通道)不必滤波
图2. 死区示意图
3. OK并下载修改后的块到S7-200中。
注意:
?
为变化比较的模拟量输入选用滤波器可以波动
?
为变化较快的模拟量输入选用较小的采样数和死区值会加快响应速度
?
对高速变化的模拟量值不要使用滤波器
?
如果用模拟量传递数字量,或者使用热电阻(EM231 RTD)、热电偶(EM231TC)、AS-Interface(CP243-2)模块时,不能使用滤波器
5.3. 模拟量比例换算因为A/D(模/数)、D/A(数/模)转换之间的对应关系,S7-200CPU内部用数值表示外部的模拟量,两者之间有一定的数学关系。这个关系就是模拟量/数值量的换算关系。
例如,使用一个0 - 20mA的模拟量输入,在S7-200 CPU内部,0 - 20mA对应于数值范围0 - 32000;对于4- 20mA的,对应的内部数值为6400 - 32000。
如果有两个传感器,量程都是0 - 16MPa,一个是0 - 20mA输出,另一个是4 -20mA输出。它们在相同的压力下,变送的模拟量电流大小不同,在S7-200内部的数值表示也不同。显然两者之间存在比例换算关系。模拟量输出的情况也大致相同。
上面谈到的是0 - 20mA与4 - 20mA之间换算关系,但模拟量转换的目的显然不是在S7-200 CPU中一个0 -32000之类的数值;对于编程和操作人员来说,具体的物理量数值(如压力值、流量值),或者对应物理量占量程的百分比数值要更方便,这是换算的zui终目标。
如果使用编程Micro/WIN32中的PID Wizard(向导)生成PID功能子程序,就不必进行0 - 20mA与4 -20mA之间的换算,只需进行简单的设置。
S7-400 到 PROFIBUS 的主站连接
通讯服务:
编程器/OP 通讯
S7 通讯
开放式通讯 (SEND/RECEIVE)
PROFIBUS-FMS
时间同步
通过 PROFIBUS 进行简单编程和组态
通过 S7 布线,可以在网络之间进行 PG/OP 通信
易于集成到 SIMATIC S7-400 系统
模块切换,不带 PG
运行于 SIMATIC H 系统,用于冗余 S7 通信
可通过 PROFIBUS FMS 方便地将 SIMATIC S7 集成到多供应商自动化集团中
采用冗余 S7 通讯,可在容错系统中应用
简便组态和通讯处理器上的独立数据转换大大降低了 PROFIBUS FMS 规范用户的工作负荷
时钟同步提供了工厂范围内的时钟时间
通过开放式通讯将 SIMATIC S7-400 集成到现有系统中
通过在一个通讯处理器上使用不同通讯服务来实现通讯处理器的通用
CP443-5 基本型通信处理器是用于 PROFIBUS 总线系统的 SIMATIC S7-400 所需要的模块。
它减轻了 CPU 的通信任务。
通过通信模块实现的 S7-400 通信选项:
通过 PROFIBUS 的与 PROFIBUS 站的 FMS 通信
与编程部件、操作器接口系统的通信
与其他 SIMATIC S7 系统进行通信。
与 SIMATIC S5 可编程控制器的通信;
可运行的的 CP 数目取决于所使用的 CPU 的性能范围和通信服务。
CP 443-5 通讯处理器具有 SIMATIC S7-400 设计的所有优点:
结构紧凑;
9 针 Sub-D 接口,用于连接至 PROFIBUS
单宽度模板
安装简单;
CP 443-5 安装在 S7-400 机架上,并经过背板总线连接到 S7-400 的其它模块。这种情况下没有槽位规则。
用户友好的接线;
Sub-D 插座易于接触,操作方便。
CP 443-5 基本型无须风扇就可操作。不需要备用电池或存储器模块
在使用 SEND/RECEIVE 时,可操作模块的数目取决于所用的 S7-400 CPU。
CPU 416-2,CPU 416-3和CPU 416-3 PN / DP是功能强大的SIMATIC S7-400的CPU。
使人们有可能作为主站或从站直接连接到PROFIBUS DP现场总线PROFIBUS DP接口集成在CPU416-2和CPU 416-3。
一个DP主站系统可以连接到CPU 416-3和CPU 416-3 PN / DP使用IF964-DP接口模块。
ERTEC 400 ASIC的集成PROFINET接口的CPU 416-3 PN / DP交换机的功能包括。这形成的基础上,用于提供两个外部可访问PROFINET端口。分层网络拓扑结构,这可让您建立在新的S7-400控制器的线结构。
评分:
只有6ES7964-2AA04-0AB0接口子模块也可使用。
两个CPU都配备了以下:
强大的处理器:
低0时03分是每个二进制指令的CPU实现指令的执行时间。
CPU 416-2:5.6 MB RAM(2.8 MB每个程序和数据);
416-3:11.2 MB RAM(其中5.6 MB的程序和数据);
CPU416-3 PN/ DP:11.2 MB RAM(其中5.6 MB的程序和数据);
几乎RAM用于用户程序的执行相关的部分。
灵活的扩展:
262,14416,384输入数字和模拟输出/。
多点接口(MPI):
随着MPI,它可以建立简单的网络。 32个台站的数据传输速率高达12 Mbit / s的CPU可以建立多达44站的通讯总线(C总线)和MPI。
模式选择器开关:
设计为拨动式开关。
诊断缓冲区:
后12*和中断事件保存在一个环形缓冲区,用于诊断目的。参赛作品的数量可以被参数化。
实时时钟:
被追加到CPU的诊断消息的日期和时间。
记忆卡:
集成的装载存储器的扩展。 RAM和FEPROM卡的保持性存储器(FEPROM)
MPI / DP接口和集成的PROFIBUS DP接口(CPU416-2和416-3):
PROFIBUS DP主站接口允许分布式自动化配置,提供高速和易用性。从用户的角度来看,分布式I/ O被视为中央I / O(相同的配置,寻址和编程)。
混合配置:SIMATIC S5和SIMATIC S7的PROFIBUS主站符合EN 50170标准。
CPU 416-3和CPU 416-3 PN / DP包括:
模块插槽:
一个附加的PROFIBUS-DP主站系统可以通过IF964-DP接口模块连接。
CPU 416-3 PN / DP还包括:
PROFINET接口,带2个端(交换机):
PROFINET I/ O,256个IO设备可连接
PROFINET CBA
块保护:
密码的概念,保护用户程序从未经*的访问。
积分HMI服务:
用户只需要与HMI设备的数据源和目的地。将数据由系统自动循环运输和
集成的通信功能:
PG / OP沟通的
共享的数据通讯
S7标准通讯
S7通信
固件更新使用网络
CPU 416-3 PN / DP额外的:
开放式通信通过TCP / IP,UDP和ISO-on-TCP(RFC1006)
分布式智能PROFINET基于组件的自动化(CBA)
集成的Web服务器的附加诊断选项
参数化的属性
STEP 7“硬件配置"工具可用于编程的属性和响应的S7-400的CP??U,例如:
多点接口(MPI):
站地址的定义。
启动/周期行为
规定的循环时间和通讯负载
地址分配:
寻址的I / O模块。
掉电保护范围:
定义保持的位存储器,计数器,定时器,数据块和时钟存储器的数量。
的过程映像,本地数据的大小。
诊断缓冲区的长度
防护等级:
定义的程序和数据的访问*
系统诊断:
定义的诊断信息的处理和范围
定时中断:
周期性设置
CPU 416-3 PN / DP额外的:
PROFINET接口
时间同步使用NTP过程的参数化
指示和信息功能
状态和错误指示灯:
LED指示内部和外部的错误和运行状态检查,运行,停止,重新启动测试功能,例如
测试功能:
编程设备可用于显示信号状态,在程序执行,无论用户程序的修改过程标签,读出的堆栈存储器的内容,运行一个单独的程序步骤,并抑制编程组件
信息功能:
可以用来在编程设备提供的所有用户的信息的存储器容量和CPU的操作模式和工作和负载存储器的当前使用率
江苏西门子代理商
4.2.2在SIMOTION侧建立通信连接
与PLC在NETPRO中创建连接不同,在SIMOTION侧需要调用函数建立连接,通信函数存储于在“Communication"->“Datatransfer"目录下,函数调用的示例程序参考图16:
图16 SIMOTION侧建立TCP连接(户端)
函数参数解释如下:
Port
SIMOTION 端口号,数据类型UINT,在NETPRO中定义为2001。
ServerAddress
PLC的IP地址,数据类型为数组,ARRAY [0..3] OFUSINT,在4个字节中输IP地址,例如192、168、1、112,表示IP地址为192.168.1.112。
ServerPort
PLC的端口号,数据类型UINT,例子程序中在NETPRO定义为2000。
NextCommand
枚举数据类型,元素中包括“IMMEDIATELY "、“WHEN_COMMAND_DONE。
“IMMEDIATELY":接收命令与后续所要执行的命令同步执行。
“WHEN_COMMAND_DONE":接收命令执行或失败后执行后续的命令,异步执行。
OUT
调用函数返回信息,包括调用状态和连接号。数据类型为结构体(StructRetTcpOpenClient),返回信息参考表2:
表2:TCP 客户端连接函数返回信息
结构名称数据类型functionResult状态信息,可以查看通信连接是否建立DINTconnectionId连接号,用于发送和接收函数的参数赋值DINT连接函数调用一次,得到连接号后停止调用。
注意:此函数调用需用上升沿信号进行使能。
4.2.3在PLC侧编写通信程序
通信连接建立后,在通信双方需要编写通信函数或通信功能块。在S7-300 PLC侧OB35中(间隔发送)调用发送功能块FC5AG_SEND(“Libraries"->“StandardLibrary"->“SIMATIC_NET_CP"->“CP300",示例程序如下:
CALL "AG_SEND"
ACT :=TRUE
ID :=1
LADDR :=W#16#100
SEND :=P#DB1.DBX 0.0 BYTE 60
LEN :=60
DONE :=M1.2
ERROR :=M1.3
STATUS:=MW2
通信函数FC5的参数含义:
ACT :为1触发。
ID :参考本地CPU连接表中的块参数。
LADDR :参考本地CPU连接表中的块参数。
SEND : 发送区。大通信数据为8192字节。与SIMOTION之间大4096个字节。
LEN : 实际发送数据长度。
DONE :每次发送成功,产生一个上升沿。
ERROR :错误位。
STATUS:通讯状态字。
示例程序中S7-300 PLC发送DB1中前60个字节。
在通信方CPU OB1中调用接受函数FC6 AG_RECV(“Libraries"->“StandardLibrary"->“SIMATIC_NET_CP"->“CP300",示例程序如下:
CALL "AG_RECV"
ID :=1
LADDR :=W#16#100
RECV :=P#DB2.DBX 0.0 BYTE 60
NDR :=M10.1
ERROR :=M10.2
STATUS:=MW12
LEN :=MW14
通信函数FC6的参数含义:
ID :参考本地CPU连接表中的块参数。
LADDR :参考本地CPU连接表中的块参数。
RECV : 接收区。接收区应等于发送区。
NDR : 每次接收到新数据,产生一个上升沿。
ERROR :错误位。
STATUS:通讯状态字。
LEN : 实际接收数据长度。
示例程序中S7-300 PLC将接收的数据存储于本地数据区DB2的前60个字节中。
4.2.4在SIMOTION侧编写通信程序
在PLC侧调用发送和接收功能块,在SIMOTION侧相应调用发送和接收函数与之相匹配,通信函数存储于在“Communication"->“Datatransfer"目录下,发送函数调用的示例程序参考图17,发送函数与PLC的接收功能块相匹配。
图17 调用发送函数
发送函数参数解释如下:
ConnectionId
参考_TcpOpenClient函数建立的连接。
DataLength
发送数据的字节长度,数据类型为UDINT,例子中为60,发送数据区Data中前60个字节。
Data
发送数据区,数据类型为数组,ARRAY [0..4095] OF BYTE。
OUT
输出通信状态,数据类型为DINT。
接收函数调用的示例程序参考图18,接收函数与PLC的发送功能块相匹配。
图18 调用接收函数
接收函数参数解释如下:
ConnectionId
参考_TcpOpenClient函数建立的连接。
ReceiveVariable
数据接收区,数据类型为数组,ARRAY [0..4095] OF BYTE,大4096字节。
OUT
调用函数返回信息,包括调用状态和接收的字节数量。数据类型为结构体(StructRetTcpReceive),返回信息参考表3:
表3: 接收函数返回信息
结构名称数据类型functionResult接收状态信息DINTdataLength接收字节长度UDINT注意:
PLC的接收区和发送区必须与SIMOTION的接收区和发送区相同。
UDP示例程序参考附带文件“SIMOTION_UDP".ZIP
TCP示例程序参考附带文件“SIMOTION_TCP".ZIP