SIEMENS西门子湘西授权代理商
在STEP7(TIA Portal)中如何为S7-1200/1500实现积分编程?
为了近似测定面积,使用以SCL语言编写的FB "Integration"程序块可以持续对区域面积进行累加。
说明
积分是对给定函数曲线的面积进行数学计算。但是实际曲线往往没有明确的数学关系,而是随时间变化的模拟量。积分计算就是把所有由两个过程值与时间所围成的梯形区域面积相加,梯形面积等于两个过程值的平均值乘以时间间隔。
下载附件是以SCL语言编写的用于计算积分的 "Integration" 功能块
表示了FB "Integration"的调用参数。FB "Integration"中 "in"参数为转化为浮点数的模拟量输入值。
如果"enable" 参数接收到 "False" 值,那么积分计算将停止并且"out"参数输出后计算值。
如果 "reset"接收到 "True"值,那么"out"输出将复位为零。
计算结果存储于 "out" 输出。
当使能积分后,"error"会在启动计算时输出一个周期的"True"信号(信号在积分计算期间失效)。
要使用 "in"参数的输入值启动积分计算,必须
创建一个功能,并声明输入变量为"Int"类型。图.01 显示了对于"AccessGroupInt"功能块的编程示例,通过index进行间接寻址并返回值。可以在程序中直接使用间接访问,例如使用指令#TempValue:= "AccessGroupInt"(#Index);。这一编程方法
可追踪,因为可以使用交叉索引。
安全,因为仅使用了预定义的内存区。
通用,因为既可以用于标准块也可以用于优化的数据区 。
在下面的示例中数据被从三个不同的优化的数据块中读出或写入。三个数据块"Silo_Water", "Silo_Sugar" 和"Silo_Milk"都包含相同的变量声明:
DB 变量1:"MyBool" Bool类型
DB 变量2:"MyInt" Int类型
DB 变量3:"MyWord" Word类型
创建的PLC数据类型"SiloUDT"用于寻址包含不同数据类型的DB变量。 "AccessGroupSiloRead"功能块用于读出返回值,是由PLC 数据类型 "SiloUDT"定义的。基于此可以在一个FB中间接访问,例如如图.03所示的指令:
"Silo_Handling_OnlyReading"("AccessGroupSiloRead"(Index:= #Silo_Index));
创建环境
此FAQ中的截屏由 STEP 7 (TIA Portal) V13创建。
创建的PLC数据类型"SiloUDT"用于寻址包含不同数据类型的DB变量。 "AccessGroupSiloRead"功能块用于读出返回值,是由PLC 数据类型 "SiloUDT"定义的。基于此可以在一个FB中间接访问,例如如图.03所示的指令:
创建环境
此FAQ中的截屏由 STEP 7 (TIA Portal) V13创建。
在STEP7(TIA Portal)中如何为S7-1200/1500实现积分编程?
下表列出了 FB "Integration" 的输入和输出参数。
参数 接口 数据类型 描述
in Input DInt 需要做积分计算的值
enable Input Bool 使能积分计算
reset Input Bool 复位( 为 True 时复位输出参数)
out Output LReal 积分后的值(可保持)
error Output Bool 错误输出
在STEP7(TIA Portal)中如何安全地并且间接地寻址?
采用间接寻址时,只有程序执行时,用于读或写数值的地址才得以确定。使用这种方法可以减少编程量并使得程序更灵活。通常来讲,程序创建后访问地址也就确定了。为了使得间接寻址更灵活和更安全,可以
使用"Array"数据类型用于组合相同的数据类型。
对于不同的存储区,采用index来访问相关的针对每个应用不同的变量。
在下面的例子中,对于三个变量的访问采用了不同的存储区。表01 显示了三个变量的访问列表,每个都有单独的索引。
在下面的示例中数据被从三个不同的优化的数据块中读出或写入。三个数据块"Silo_Water", "Silo_Sugar" 和"Silo_Milk"都包含相同的变量声明:
创建环境
此FAQ中的截屏由 STEP 7 (TIA Portal) V13创建。
西门子S7-1200与博途以及组态王的通讯设置
在线监控可在线监控PLC寄存器状态
(2)PLC与组态王通过以太网的方式通信的设置:
1、确认计算机中安装有以太网卡,并与PLC 连接到同一网络中(直接通过网线直连)。
2、通过Step7编程软件为通信模块(CP443-1)设定IP地址和子网掩码,并下传到PLC中如IP地址(192.168.0.1)、子网掩码(255.255.255.0)。 此步骤已经在博途中组态PLC的过程中完成了,通过PLC属性查看以太网地址。
3、为计算机设定IP地址和子网掩码,如IP地址(192.168.0.110)、子网掩码(255.255.255.0)。 这里以Win7系统为例 ※打开网络共享中心,双击更改适配器选项
决办法:
1、取消你DB块中的“优化块访问”见图3;
2、然后按图2*行那样建立地址用来存储需读写的数据,编译该DB块;
3、图3是我用1500做modbus TCP通信用到的指针寻址;
S7-1200运动控制指令MC_Reset
MC_Reset
指令名称:确认故障
功能:用来确认“伴随轴停止出现的运行错误”和“组态错误”。
使用要点:Execute用上升沿触发。
『注意』部分输入/输出管脚没有具体介绍,请用户参考MC_Power指令中的说明。
输入端:
①EN:该输入端是MC_Reset指令的使能端。
②Axis:轴名称。
③Execute:MC_Reset指令的启动位,用上升沿触发。
④Restart:
Restart = 0:用来确认错误。
Restart = 1:将轴的组态从装载存储器下载到工作存储器(只有在禁用轴的时候才能执行该命令)。
输出端:除了Done指令,其他输出管脚同MC_Power指令,这里不再赘述。
⑥Done:表示轴的错误已确认
一、模拟量模块介绍 (一)模拟量输入模块 FX2N常用的模拟量输入模块有FX2N-2AD、FX2N-4AD、FX2N-8AD模拟量输入模块和温度传感器输入模块。FX—2AD为2通道12位A/D转换模块。根据外部连接方法及plc指令,可选择电压输入或电流输入,是一种具有高**度的输入模块。通过简易的调整或根据可编程控制器的指令可改变模拟量输入的范围。瞬时值和设定值等数据的读出和写入用FROM/TO指令进行。 FX—2AD的技术指标 (二)模拟量输出模块 FX2N常用的模拟量输出模块有FX2N-2DA、FX2N-4DA、FX2N-8DA模拟量输出模块。FX—2DA为2通道12位D/A转换模块,是一种具有高**度的输出模块。通过简易的调整或根据可编程控制器的指令可改变模拟量输出的范围。瞬时值和设定值等数据的读出和写入用FROM/TO指令进行。 FX-2DA的技术指标 二、模拟量模块使用 (一)确定模块的编号 在FX系列可编程控制器基本单元的右侧,可以连接多8块特殊功能模块,它们的编号从靠近基本单元的那一个开始顺次编为0~7号。如图:该配置使用FX2N48点基本单元,连接FX-4AD、FX-4DA、FX-2AD 3块模拟量模块,它们的编号分别为0、1、2号。这3块模块不影响右边2块扩展的编号,但会影响到总的输入输出点数。3块模拟量模块共占用24点,那么基本单元和扩展的总输入输出点数只能有232点。 (二)缓冲寄存器(BFM)分配 FX系列可编程控制器基本单元与FX—4AD、FX—2DA等模拟量模块之间的数据通信是由FROM指令和TO指令来执行的,FROM是基本单元从FX—4AD、FX—2DA读数据的指令,TO是从基本单元将数据写到FX—4AD、FX—2DA的指令。实际上读、写操作都是对FX—4AD、FX—2DA的缓冲寄存器BFM进行的。这一缓冲寄存器区由32个16位的寄存器组成,编号为BFM#0一#31。 (三)FX-4AD模块BFM的分配表 (四)编程举例 FX-4AD模拟量输入模块连接在靠近基本单元FX2N-48MR的地方,那么它的编号为N0,如果仅开通CH1和CH2两个通道作为电压量输入通道,计算平均值的取样次数定为4次,可编程控制器中的D0和D1分别接收这两个通道输入量平均值数字量,并编梯形图程序。 梯形图 案例 :制冷中央空调温度控制 一、动作要求分析 该制冷系统使用两台压缩机组,系统要求温度在低于12℃时不起动机组,在温度高于12℃时两台机组顺序起动,温度降低到12℃时停止其中一台机组。要求先起动的一台停止,温度降到7.5℃时两台机组都停止,温度低于5℃时,系统发出超低温报警。 二、硬件设计 在这个控制系统中,温度点的检测可以使用带开关量输出的温度传感器来完成,但是有的系统的温度检测点很多,或根据环境温度变化要经常调整温度点,要用很多开关量温度传感器,占用较多的输入点,安装布线不方便,把温度信号用温度传感器转换成连续变化的模拟量,那么这个制冷机组的控制系统就是一个模拟量控制系统。对于一个模拟量控制系统,采用可编程控制器控制,控制性能可以得到极大的改善。在这里可以选用FX2N-32MR基本单元与FX2N-4AD-PT模拟量输入单元,就能方便的实现控制要求。 中央空调温度控制I/O分配表 三、软件设计 |