西门子CPU模块6ES7512-1DK01-0AB0
CPU 1511-1 PN,150 KB 程序,1 MB 数据;60 ns;集成 2x PN 接口 |
一、数据类型转换
(一)字节与整数
1、字节到整数
BTI,字节转换为整数指令。使能输入有效时,将字节输入数据IN转换成整数类型,并将结果送到OUT输出。字节型是无符号的,所以没有符号扩展。
使能流输出ENO断开的出错条件:SM4.3(运行时间);0006(间接寻址)。
指令格式:BTIIN,OUT
例:BTIVB0,AC0
2、整数到字节
ITB,整数转换字节指令。使能输入有效时,将整数输入数据IN转换成字节类型,并将结果送到OUT输出。输入数据超出字节范围(0~255)则产生溢出。
移位指令影响的特殊存储器位:SM1.1(溢出)。
使能流输出ENO断开的出错条件:SM1.1(溢出);SM4.3(运行时间);0006(间接寻址)。
指令格式:ITBIN,OUT
例:ITBAC0,VB10
(二)整数与双整数
1、双整数到整数
DTI,双整数转换为整数指令。使能输入有效时,将双整数输入数据IN转换成整数类型,并将结果送到OUT输出。输入数据超出整数范围则产生溢出。
移位指令影响的特殊存储器位:SM1.1(溢出)。
使能流输出ENO断开的出错条件:SM1.1(溢出);SM4.3(运行时间);0006(间接寻址)。
指令格式:DTIIN,OUT
例:DTIAC0,VW20
2、整数到双整数
ITD,整数转换为双整数指令。使能输入有效时,将整数输入数据IN转换成双整数类型(符号进行扩展),并将结果送到OUT输出。
使能流输出ENO断开的出错条件:SM4.3(运行时间);0006(间接寻址)。
指令格式:ITDIN,OUT
CPU 1512C-1 PN, 250 KB程序,1 MB数据;48 ns;集成2x PN接口;集成 32 DI/32 DO, 5 AI/2 AO, 6 HSC@100kHz |
CPU 1511-1 PN,150 KB 程序,1 MB 数据;60 ns;集成 2x PN 接口 |
一、数据类型转换
(一)字节与整数
1、字节到整数
BTI,字节转换为整数指令。使能输入有效时,将字节输入数据IN转换成整数类型,并将结果送到OUT输出。字节型是无符号的,所以没有符号扩展。
使能流输出ENO断开的出错条件:SM4.3(运行时间);0006(间接寻址)。
指令格式:BTIIN,OUT
例:BTIVB0,AC0
1511C-1PN和1512C-1 PN CPU适用于程序尺寸和处理速度的中等要求的串联和机械制造。
1511C-1PN和1512C-1 PN CPU可用作PROFINET IO控制器或分布式智能(PROFINET I-设备)。集成PROFINET IO IRT接口支持等时模式,设计为2端口开关,使线性拓扑能够在系统中配置。
CPU上的集成数字和模拟输入/输出允许直接连接到进程。CPU 1511C-1PN和CPU 1512C-1PN都有5个模拟输入,可用于检测压力或温度等模拟处理信号。5个集成模拟输入中的4个可用于电流或电压测量,一个输入可用于电阻测试。直接集成在CPU上的两个模拟输出将16位数字值转换为电流或电压,并将此值输出到进程。例如,它们适用于控制比例阀。
数字输入可用于直接在控制器上检测来自系统的24V直流信号。集成计数器可检测高达100 kHz的快速信号,无需直接在控制器中添加模块即可评估计数器读数或电流速度。速度可以输出为频率,周期或速度标准化的用户。
集成数字输出操作24V直流电压,从而将内部信号从控制器转发到系统。
每个高速计数器可以分配一个数字输出。集成比较器根据计数器读取允许快速响应。
CPU的运动控制功能可以使用积分计数器作为位置实际值,模拟输出作为速度设定点输出
配置数字量输出通道
①“对CPU STOP 模式的响应”:设置数字量输出对CPU 从运行状态切换到 STOP 状态的响应,可以设置为保留zui后的有效值或者使用替代值;
②“通道地址”:输出通道的地址,首地址在“I/O地址”项中设置;
③“从RUN 模式切换到 STOP 模式时,替代值1”:如果在数字量输出设置中,选择“使用替代值”,则此处可以勾选,表示从运行切换到停止状态后,输出使用“替代值1”,如果不勾选表示输出使用“替代值0”。如果选择了“保持上一个值”则此处为灰色不能勾选。
“I/O 地址”:数字量地址设置如图 5 所示。
图5 数字量输入输出地址设置
①“起始地址”:模块输入的起始地址;
②“结束地址”:系统根据起始地址和模块的IO数量自动计算并生成结束地址;
③“组织块”:可将过程映像区关联到一个组织块,当启用该组织块时,系统将自动更新所分配的过程映像分区;
④“过程映像”:选择过程映像分区。
• "输出地址":设置与输入类似。
注意: 所有输入输出的地址都在过程映像区之内,如果没有选择组织块和分区,默认情况下过程映像区是自动更新。
"硬件标识符":用于寻址硬件对象,常用于诊断,也可以在系统常量中查询。
“常规”:单击模拟量输入/输出的“常规”选项可以输入项目信息:
“模拟量输入”:组态如图 6 所示。
图6 模拟量输入组态
①“积分时间”:通过设置积分时间可以抑制频率的干扰;
②“通道地址”:首地址在模拟量的“I/O地址”中设置;
③“测量类型”:本体上的模拟量输入只能测量电压信号,所以选项为灰,不可设置;
④“电压范围”:测量的电压信号范围为固定的0~10V;
⑤“滤波”:模拟值滤波可用于减缓测量值变化,提供稳定的模拟信号。模块通过设置滤波等级(无、弱、中、强)计算模拟量平均值来实现平滑化。
⑥“启用溢出诊断”:如果激活“启用溢出诊断”,则发生溢出时会生成诊断事件。
"模拟量输出":组态如图 7 所示。
西门子CPU模块6ES7512-1DK01-0AB0
编写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”
4读取CPU的序列号
4.1 编程
说明:
通过 SFC 51“RDSYSST”可以从系统状态列表(SSL)中读取下列标识数据:
下面的表格指明了可以从不同型号和固件版本的 CPU 读取其它哪些标识数据。为此使用 SFC 51 和 SSL ID W#16#011C。
表3 INDEX说明
索引 | 名称 | S7-300/C7 | S7-400 |
W#16#0001 | 自动化系统的名称 | 从固件版本 V2.2 起 | 支持 |
W#16#0002 | CPU 的名称 | 从固件版本 V2.2 起 | 支持 |
W#16#0003 | CPU 的设备 ID | 从固件版本 V2.2 起 | 支持 |
W#16#0004 | 版权条目 | 从固件版本 V2.2 起 | 支持 |
W#16#0005 | CPU 的序列号 | 从固件版本 V2.2 起 | 从 MLFB |
6ES741x-xxx04-0AB0 起 | |||
W#16#0006 | 为操作系统保留 | - | - |
W#16#0007 | CPU 型号名称 | - | 支持 |
W#16#0008 | MMC 或 MC 的序列号 (参见条目号:19215608) | 从固件版本 V2.0 起 | - |
(CPU317:从 V2.1 开始) |
需要注意,老CPU升级到上表版本也无法实现此功能。
首先需要创建一个数据块,用来存放读取出来的状态结果
图7 创建DB1,存放读取结果
打开OB1,首先在OB1的临时变量区创建一个变量length,类型设置为Struct(结构)
图8 创建名为length的结构变量
双击length变量,进入结构变量成员定义,创建两个word类型的变量,本例中分别为size和number:
图9 创建length的结构变量的两个word成员
编写SFC51程序:
CALL "RDSYSST"
REQ :=TRUE
SZL_ID :=W#16#11C //读取CPU 的序列号
INDEX :=W#16#5
RET_VAL :=MW0
BUSY :=M2.0
SZL_HEADER:=#length
DR :=P#DB1.DBX0.0 BYTE 500 //结果输出到DB1数据块中
结果如下图:
图10 CPU序列号