
西门子SM431模拟量模块
发布时间:2018/4/12 9:51:00西门子SM431模拟量模块
![]() | 6ES7431-1KF00-0AB0SIMATIC S7-400,SM 431模拟量输入模块,光隔离,8 AI,13 位分辨率,U/I/RESIST. |
1. 问题描述
在S7-400中使用功能完善的FC或FB,在更换调用OB块后发生本地数据分配错误,如图一所示。
图 1
2. 故障原因
从诊断缓冲区故障描述可以看到该故障是由循环中断OB34触发,打开项目交叉索引查看程序结构如图2,OB34和OB35中都调用了FC1,而FC1需要使用512字节的本地数据区,这些本地数据区由调用OB动态分配。项目中OB34和OB35所需使用的本地数据为534字节。
图 2
在硬件组态中查看CPU属性内存页面(图3),可以看到CPU为各优先级预分配的本地数据区大小。
图 3
查看CPU属性循环中断页面(图4)中可查到OB34优先级为11,OB35优先级为12,所以OB35本地数据区大小默认为758字节,OB34本地数据区大小默认为256字节。由此可得知故障原因是由于CPU为OB34预分配的本地数据区太小(256<534)。
图 4
3. 解决方法
方法一:将FC1在本地数据区足够大的OB中调用,例如OB33优先级10,本地数据默认758字节。
方法二:将优先级11的本地数据区增大。CPU的本地数据值根据CPU型号不同而不同,具体参考《SIMATIC S7-400 S7-400自动化系统,CPU规格》
![]() | 6ES7431-0HH00-0AB0SIMATIC S7-400,模拟量输入SM 431,非隔离16 AI,分辨率13位,+/-10V,+/-20MA,4 - 20MA,20 MS模块升级 |
| |||
![]() | 6ES7431-1KF00-0AB0SIMATIC S7-400,SM 431模拟量输入模块,光隔离,8 AI,13 位分辨率,U/I/RESIST. |
| |||
![]() | 6ES7431-1KF10-0AB0SIMATIC S7-400,SM 431模拟量输入模块,光隔离,8 AI,14 位分辨率,U/I/RESIST./THERMOEL/PT100 |
| |||
![]() | 6ES7431-1KF20-0AB0SIMATIC S7-400,SM 431模拟量输入模块,光隔离,8 AI,14 位分辨率,U/I/RESIST.0.416 MS 扫描时间 |
| |||
![]() | 6ES7431-7KF00-0AB0SIMATIC S7-400,模拟量输入SM 431,8AI;16 位分辨率,U/I/THERMOEL,光隔离,公共点,DIAGN ,报警,20 MS模块升级 |
| |||
![]() | 6ES7431-7KF10-0AB0SIMATIC S7-400,模拟量输入SM 431,8AI;16 位分辨率,RESIST./PT100/NI100,光隔离,诊断 ,报警,20 MS模块升级 |
| |||
![]() | 6ES7431-7QH00-0AB0SIMATIC S7-400,SM 431模拟量输入模块,光隔离,16 AI,16 位分辨率,U/I/RESIST./THERMOEL./PT10 0,报警,诊断 |
1 SFC 51简介
1.1 程序功能介绍
通过系统功能SFC 51 "RDSYSST" (读取系统状态),可以读取系统状态列表或部分系统状态列表,例如指示灯状态,序列号,从站状态等等。
调用SFC 51时,通过将值“1”赋给输入参数REQ来启动读取。如果可以立即读取系统状态,则SFC将在BUSY输出参数中返回值0。如果BUSY包含值1,则尚未完成读取功能。
表1 SFC51参数说明
参数 | 描述 | |
REQ | 输入参数 | REQ = 1:启动处理 |
SSL_ID | 输入参数 | 将要读取的系统状态列表或部分列表的ID号 |
INDEX | 输入参数 | 部分列表中对象的类型或编号。 |
RET_VAL | 输出参数 | 如果执行SFC时出错,则RET_VAL参数 |
将包含错误代码。 | ||
BUSY | 输出参数 | TRUE:尚未完成读取。 |
SSL_HEADER | 输出参数 | LENTHDR是SSL列表或SSL部分列表的数据记录的长度。 |
? 如果仅读取了SSL列表的标题信息,则N_DR包含属于它的数据记录数。 | ||
? 否则,N_DR包含传送到目标区域的数据记录数。 | ||
DR | 输出参数 | SSL列表读取或SSL部分列表读取的目标区 |
域: | ||
? 如果仅读取了SSL列表的标题信息, | ||
则不能评估DR的值, | ||
而只能评估SSL_HEADER的值。 | ||
? 否则,LENTHDR和N_DR的乘积将指 | ||
示已在DR中输入了多少字节。 |
2 读取CPU指示灯
可以通过SFC 51读取CPU的指示灯状态,使用的SSL_ID参数为16#74(16#19)读取全部指示灯状态 或者16#174(16#119)读取单个指示灯状态
2.1 编程
首先需要创建一个数据块,用来存放读取出来的指示灯状态结果
图1 创建DB1,存放读取结果
打开OB1,在OB1的临时变量区创建一个变量length,类型设置为Struct(结构)
图2 创建名为length的结构变量
双击length变量,进入结构变量成员定义,创建两个word类型的变量,本例中分别为size和number:
图3 创建length的结构变量的两个word成员
编写SFC51程序:
CALL "RDSYSST"
REQ :=TRUE
SZL_ID :=W#16#74 //读取全部指示灯状态
INDEX :=W#16#0
RET_VAL :=MW0
BUSY :=M2.0
SZL_HEADER:=#length
DR :=P#DB1.DBX0.0 BYTE 500 //结果输出到DB1数据块中
DB1存放的结果即为模块的指示灯状态,每个指示灯有4个字节的长度来描述。
前两个字节表示灯的类型(见表二),表示是SF灯还是BF灯等等。
第三个字节表示灯是亮还是灭,如果为1则灯亮,如果为0则灯的状态是灭。
第四个字节表示灯是否闪烁,0表示不闪,1表示正常闪烁(2hz),2,表示慢闪(0.5hz)
灯的类型列表如下(不同的CPU会有不同数目的指示灯):
表2 前两个字节的含义
16#1 | SF |
16#2 | INTF |
16#3 | EXTF |
16#4 | RUN |
16#5 | STOP |
16#6 | FORCE |
16#7 | CRST |
16#8 | BAF |
16#9 | USR |
16#A | USR1 |
16#B | BUS1F |
16#C | BUS2F |
16#D | REDF |
16#E | MSTR |
注意事项:
关于系统功能SFC51的更多详情请参阅STEP 7的在线帮助,或者通过Start > SIMATIC > DOCUMENTATION选择手册“System Software for S7-300/400 System and Standard Functions”
3 读取Profibus DP从站 状态
3.1 编程
首先需要创建一个数据块,用来存放读取出来的状态结果
图4 创建DB1,存放读取结果
打开OB1,首先在OB1的临时变量区创建一个变量length,类型设置为Struct(结构)
图5 创建名为length的结构变量
双击length变量,进入结构变量成员定义,创建两个word类型的变量,本例中分别为size和number:
图6 创建length的结构变量的两个word成员
编写SFC51程序:
CALL "RDSYSST"
REQ :=TRUE
SZL_ID :=W#16#294 //读取从站是否存在
INDEX :=W#16#1
RET_VAL :=MW0
BUSY :=M2.0
SZL_HEADER:=#length
DR :=P#DB1.DBX0.0 BYTE 500 //结果输出到DB1数据块中
在本例中,P#DB1.DBX0.0 BYTE 500中为每个DP从站(16 x 8 = 128)保留一位,地址为Address 1的DP从站的状态保存在第三个字节的Bit 1位中, 地址为Address 3的DP从站的状态保存在第三个字节的Bit 3位中,依次类推。如果从站对应的位未被置位,则表明那个DP从站没有通信上或不存在。
举例:从DB1.DBW2开始,每个位对应一个bit,例如3号站对应的位是DB1.DBX2.3 ,站点存在的位为1,不存在的为0。
注意事项:
关于系统功能SFC51的更多详情请参阅STEP 7的在线帮助,或者通过Start > SIMATIC > DOCUMENTATION选择手册“System Software for S7-300/400 System and Standard Functions”
S7300电源模板
6ES7307-1BA00-0AA0
6ES7307-1EA00-0AA0
6ES7307-1KA01-0AA0
CPU
6ES7312-1AE13-0AB0
6ES7312-5BE03-0AB0
6ES7313-5BF03-0AB0
6ES7313-6BF03-0AB0
6ES7313-6CF03-0AB0
6ES7314-1AG13-0AB0
6ES7314-6BG03-0AB0
6ES7314-6CG03-0AB0
6ES7315-2AG10-0AB0
6ES7315-2EH13-0AB0
6ES7317-2AJ10-0AB0
6ES7317-2EK13-0AB0
6ES7318-3EL00-0AB0
内存卡
6ES7 953-8LF20-0AA0
6ES7 953-8LG11-0AA0
6ES7 953-8LJ20-0AA0
6ES7 953-8LL20-0AA0
6ES7 953-8LM20-0AA0
6ES7 953-8LP20-0AA0
开关量模板
6ES7 321-1BH02-0AA0
6ES7 321-1BH10-0AA0
6ES7 321-1BH50-0AA0
6ES7 321-1BL00-0AA0
6ES7 321-7BH01-0AB0
6ES7 321-1EL00-0AA0
6ES7 321-1FF01-0AA0
6ES7 321-1FF10-0AA0
6ES7 321-1FH00-0AA0
6ES7 321-1CH00-0AA0
6ES7 321-1CH20-0AA0
6ES7 322-1BH01-0AA0
6ES7 322-1BH10-0AA0
6ES7 322-1CF00-0AA0
6ES7 322-8BF00-0AB0
6ES7 322-5GH00-0AB0
6ES7 322-1BL00-0AA0
6ES7 322-1FL00-0AA0
6ES7 322-1BF01-0AA0
6ES7 322-1FF01-0AA0
6ES7 322-5FF00-0AB0
6ES7 322-1HF01-0AA0
6ES7 322-1HF10-0AA0
6ES7 322-1HH01-0AA0
6ES7 322-5HF00-0AB0
6ES7 322-1FH00-0AA0
6ES7 323-1BH01-0AA0
6ES7 323-1BL00-0AA0
模拟量模板
6ES7 331-7KF02-0AB0
6ES7 331-7KB02-0AB0
6ES7 331-7NF00-0AB0
6ES7 331-7NF10-0AB0
6ES7 331-7HF01-0AB0
6ES7 331-1KF01-0AB0
6ES7 331-7PF01-0AB0
6ES7 331-7PF11-0AB0
6ES7 332-5HD01-0AB0
6ES7 332-5HB01-0AB0
6ES7 332-5HF00-0AB0
6ES7 332-7ND02-0AB0
6ES7 334-0KE00-0AB0
6ES7 334-0CE01-0AA0
附件
6ES7 365-0BA01-0AA0
6ES7 360-3AA01-0AA0
6ES7 361-3CA01-0AA0
6ES7 368-3BB01-0AA0
6ES7 368-3BC51-0AA0
6ES7 368-3BF01-0AA0
6ES7 368-3CB01-0AA0
6ES7 390-1AE80-0AA0
6ES7 390-1AF30-0AA0
6ES7 390-1AJ30-0AA0
6ES7 390-1BC00-0AA0
6ES7 392-1AJ00-0AA0
6ES7 392-1AM00-0AA0
6ES7 392-1BM01-0AA0
功能模板
6ES7 350-1AH03-0AE0
6ES7 350-2AH00-0AE0
6ES7 351-1AH01-0AE0
6ES7 352-1AH02-0AE0
6ES7 355-0VH10-0AE0
6ES7 355-1VH10-0AE0
6ES7 355-2CH00-0AE0
6ES7 355-2SH00-0AE0
6ES7 338-4BC01-0AB0
6ES7 352-5AH00-0AE0
6ES7 352-5AH00-7XG0
通讯模板
6ES7 340-1AH02-0AE0
6ES7 340-1BH02-0AE0
6ES7 340-1CH02-0AE0
6ES7 341-1AH01-0AE0
6ES7 341-1BH01-0AE0
6ES7 341-1CH01-0AE0
6ES7 870-1AA01-0YA0
6ES7 870-1AB01-0YA0
6ES7 902-1AB00-0AA0
6ES7 902-1AC00-0AA0
6ES7 902-1AD00-0AA0
6ES7 902-2AB00-0AA0
6ES7 902-2AC00-0AA0
6ES7 902-2AG00-0AA0
6ES7 902-3AB00-0AA0
6ES7 902-3AC00-0AA0
6ES7 902-3AG00-0AA0
6GK7 342-5DA02-0XE0
6GK7 342-5DF00-0XE0
6GK7 343-5FA01-0XE0
6GK7 343-1EX30-0XE0
6GK7 343-1EX21-0XE0
6GK7 343-1CX00-0XE0
6GK7 343-1CX10-0XE0
6GK7 343-1GX20-0XE0
6GK7 343-1GX21-0XE0
6GK7 343-1HX00-0XE0
6GK7 343-2AH00-0XA0
6ES7971-1AA00-0AA0
6ES7971-5BB00-0AA0
6ES7314-6EH04-0AB0
西门子SM431模拟量模块