您现在的位置是:首页 > PLC技术 > PLC技术
STEP 7模块参数化概述
来源:艾特贸易2018-04-21
简介大多数 S7 模块都可以设置参数,也就是说,可以将模块设定为与默认值不同的其他值。在硬件组态中打开模块,填写对话框中的各栏就可以指定参数。当传送块容器中的系统数据对象到
大多数S7模块都可以设置参数,也就是说,可以将模块设定为与默认值不同的其他值。在硬件组态中打开模块,填写对话框中的各栏就可以指定参数。当传送块容器中的系统数据对象到PLC时,同时也传送了模块的参数。
在下列情况下CPU自动地将模块参数传送到模块:
●重启。
●把模块插入到配置过的插槽中(S7-400)。
●机架或分布式I/O工作站“返回”之后。
模块的参数数据组合成一个完整的数据记录而不能个别地寻址。所有数据记录要一致地传送。需要通过模块起始地址和数据记录序号来寻址。来自输入模块的数据记录只能进行读取操作,而来自输出模块的数据只能进行写入操作(“写数据记录”)。
1.静态和动态模块参数
模块的参数分为静态参数和动态参数。在硬件组态中,可以离线设定这两种类型的参数,也可以在运行时通过调用SFC修改动态参数。在重启程序中,通过硬件组态设定的参数(保存在CPU上)可以覆盖使用SFC设置的模块参数。
信号模块的参数在两个数据记录中:静态参数在数据记录0内,动态参数在数据记录1内。可以使用SFC 57 RARM_MO将这两个数据记录传送到模块,数据记录0或1都可以使用SFC 56 WR_DPARM,而只有数据记录1可以使用SFC 55 WR_PARM。数据记录必须位于CPU的系统数据块内。
给S7-400模块配置参数后,指定的参数值不会立即生效,直到自诊断数据记录0的第二字节(“操作模式”)的值设定为“RUN”(可以使用SFC 59 RD_TEC)。
2.系统块的异步处理
除了系统功能SFC 54RD_DPARM,用于模块参数化的系统块和记录的传送操作也按照异步的方式进行。功能的执行涉及几个调用,由块参数REQ=“1”触发。在作业处理期间,参数BUSY的值为“1”,参数RET_VAL或STATUS的值为W#16#7001(作业在处理中)。
模块所对应的特定作业由参数IOID、LADDR和RECNUM的设置来指定,或者由ID和INDEX指定。只要BUSY=“1”,使用REQ=“1”重新调用同一个作业为无效操作,RET_VAL或STATUS返回W#16#7002。
当触发一个作业的时候如果有错误发生,就会在参数RET_VAL或STATUS中指出,而BUSY保持为0。
一旦完成一个作业,BUSY的状态就为0。如果是错误的结束,RET_VAL或STATUS的值为W#16#0000;使用SFC 59RD_REC,传送的字节数在参数RET_VAL中。在错误的事件当中,RET_VAL或STATUS包含了错误代码。
3.模块和数据记录寻址
就数据传送的寻址而言,可以使用最低的模块的起始地址(LADDR参数)和指明是否已将该地址定义为输入或输出的标识(IOID参数)。新的系统功能忽略IOID,I/O ID位于LADDR或ID的第15位(“0”=输入; “1”=输出)。
如果同时给输入和输出设定了同样的起始地址,给输入使用标识。使用I/O标识将忽略所要执行的是读还是写操作。使用参数RECNUM或INDEX定义数据记录序号。
使用数据类型为ANY的参数RECORD来定义一个BYTE组件的区域。它可能是一个ARRAY、STRUCT或UDT类型的变量,或者是BYTE类型的一个ANY指针(比如P#DBzDBSy.x BYTE nnn)。如果要使用变量,它必须是一个“完整的”变量,单个的数组或结构组件是不允许的。
4.允许的数据记录序号
用于模块参数化的系统功能允许的数据记录序号在1~240之间。通过使用SFC 54 RD_DPARM和SFC 56 WR_DPARM,相关的数据记录必须在系统数据中给出。
SFC 58 WR_REC可以处理的数据记录的序号为2~240,SFC 59 RD_REC处理0~240,SFB 53 WRREC可以传送的数据记录的序号为0~255。
在SIMATIC S7中,数据记录0和1具有特殊的意义:
●数据记录0:读取自诊断数据(4字节)和写静态模块参数。
●数据记录1:读取自诊断数据(数据记录0和更多的数据)和写动态模块参数。数据记录的长度最多可达240字节。
点击排行
