一 | CPU启动模式 |
S7-1200 CPU 通电后,它在开始执行循环用户程序之前首先执行启动程序。 CPU 支持以下组态选项:
不重新启动(保持为 STOP 模式):CPU 上电后直接进入 STOP 模式;暖启动 - RUN 模式 :CPU 上电后直接进入 RUN 模式;暖启动 - 断电前的模式(此为默认设置) :择该项后,CPU 上电后将按照断电前该 CPU 的 RUN 模式启动,即断电前CPU处于运行模式,则上电后 CPU 依然进入 RUN 模式;如果断电前 CPU 处于 STOP 状态,则上电后 CPU 进入 STOP 模式。启动模式设置
S7-1200 启动模式可以在“CPU 属性-常规-启动” 进行设置。如下图:
image-20240522150240234
注:启动选项中其它说明
“比较预设与实际组态”:定义了 S7-1200 PLC 站的实际组态与当前组态不匹配时的 CPU 启动特性:
“仅在兼容时,才启动 CPU”:所组态的模块与实际模块匹配(兼容)时,才启动 CPU。“即便不匹配,也启动 CPU”:所组态的模块与实际模块不匹配(不兼容,通常是指扩展模块订货号与实际不一致造成)时,也启动 CPU。 (注意:此时的用户程序可能无法正常运行,必须采取相应措施!所以要慎重选择该项。 标准型 S7-1200 默认选择此设置。)“组态时间”:在 CPU 启动过程中,为集中式 I/O 和分布式 I/O分配参数的时间,包括为 CM 和 CP 提供电压和通信参数的时间。如果在设置的“组态时间”内完成了集中式 I/O 和分布式 I/O的参数分配,则 CPU 立刻启动;如果在设置的“组态时间”内,集中式 I/O 和分布式 I/O 未完成参数分配,则 CPU 将切换到 RUN 模式,但不会启动集中式 I/O 和分布式 I/O;
“OB 应该可中断”:激活“OB 应该可中断”后,在 OB 运行时,更高优先级的中断可以中断当前 OB,在高优先级OB 处理完后,会继续处理被中断的 OB。如果不激活“OB 应该可中断”,则优先级大于 2 的任何中断只可以中断循环 OB,但优先级为 2~25 的 OB 不可被更高优先级的 OB 中断。
二 | 系统和时钟存储器 |
“系统和时钟存储器”页面可以设置M存储器的字节给系统和时钟存储器,然后程序逻辑可以引用他们的各个位用于逻辑编程。
image-20240522151728597
“系统存储器位”:用户程序可以引用四个位:首次循环,诊断状态已更改(较少用到,不好理解),始终为 1,始终为 0。
说明:诊断状态已更改:在诊断事件后的一个扫描周期内置位为 1。由于直到启动 OB 和程序循环 OB 首次执行完才能置位该位,所以在启动 OB 和程序循环 OB 首次执行完成才能判断是否发生诊断更改;
“时钟存储器位”:如上图所示,组态的时钟存储器的每一个位都是不同频率的时钟方波。
频率:是单位时间内完成周期性变化的次数;例如较长用的clock_1HZ,即1秒中完成1次周期变化(0,1交替),即接通0.5S,断开0.5S为1个周期;clock_1HZ常用来做为秒计时使用;
三 | S7-1200的内部存储区 |
S7-1200的内部存储区分为工作存储区、装载存储区和保持性存储区三种。
装载存储区:
是非易失性存储区。用于存储用户项目文件(用户程序、数据和组态)。
如果不使用存储卡,用户使用TIA PORTAL软件下载项目即下载到CPU内置的装载存储区中。
如果使用存储卡,用户使用TIA PORTAL软件下载项目即下载到存储卡中,即存储卡作为装载存储区。(使用大容量的存储卡,可以扩展装载存储)
工作存储区:
是易失性存储区。CPU在执行用户程序时会将一些项目内容从装载存储区复制到工作存储区。断电后工作存储区中的内容断电后丢失,且不能被扩展。+
注意:使用大容量的存储卡,无法扩展工作存储区
保持性存储区:
用于在CPU断电时存储指定单元的过程数据,保证数据断电不丢失
注意:使用大容量的存储卡,无法扩展保持性存储区
内部存储区的具体大小请参考下表:
75 kB | 100 kB (150 kB) | 150 kB (200 kB) | 200 kB (250 kB) | 250 kB |
1 MB | 2 MB | 4 MB | 4 MB | 4 MB |
14 kB |
查看S7-1200的内部存储区的使用情况
查看用户程序已经使用存储区:可以在TIA PORTAL 软件资源窗口查看用户程序已经使用存储区资源和输入输出资源,如下图:
image-20240522154302151
在线查看S7-1200的内部存储区的使用情况:在项目树中展开PLC程序打开"在线和诊断", 点击"转到在线"按钮使TIA PORTAL在线连接到S7-1200 CPU,在”存储器“标签查看CPU内存使用情况,如下图所示:
image-20240522154414907
四 | S7-1200 断电保持实现 |
需要被断电保持的数据必须被保持到保持性寄存器中。保持性寄存器中不需要超级电容供电维持,其中的数据可以yongjiu保持。总共可以有10240个字节的数据具有保持特性。CPU暖启动或者断电再上电后,保持性存储区中的数据会保持为暖启动或者断电之前的数值,保持性存储区之外的数据会丢失,即恢复初始值。CPU的M存储区、FB的背景数据块和全局数据块中的数据可以使用保持性存储区存储。
M存储区断电保持
可以在“PLC 变量” 标签页中,点击“保持”按钮来设定M存储区的保持范围,从MB0开始的连续字节数,例如设置10,则保持范围为MB0-MB9共10个字节,如下图所示:
image-20240522155154386
注:M存储区掉电保持,只能从MB0开始的连续多杀字节,无法设置多个保持区;最大8192字节
FB的背景数据块的断电保持
对于优化FB
背景数据块中的每个变量都可以单独指定断电保持特性。打开FB,在上方的接口区,用户可以在“保持”列中修改每个变量的保持特性,设置完成后背景数据块中自动勾选保持选项如下图所示:
image-20240522155947155对于非优化FB
只能整体地指定其背景数据块的保持特性,不能每个变量单独指定。打开FB的一个景数据块,可以在“保持”列中修改变量的保持特性,如下图所示:
image-20240522161445211全局数据块
与FB的背景数据块相同,全局数据块的也分为优化和非优化两种。使用优化DB块能够最优化地利用CPU内部的数据存储区。全局数据块的断电保持特性也与FB的背景数据块相同:
使用优化的全局数据块可以分别指定其内部每个变量的保存特性使用非优化的全局数据块,只能对其整体指定一种保持特性image-20240522162051417
注意:FB、DB中的UDT、STRUCT内部的变量无法设置独立的保持性,也就是说UDT、STRUCT内部的变量的保持性是一致的。