S7-1200的CPU本体上集成了PROFINET通信口,通过这个通信口可以实现CPU与编程设备的通信。
此外,S7-1200 可以通过连接CM1243-5扩展模块,然后电脑通过PC ADAPTER USB A2电缆、或者电脑上的CP卡(例如CP5612)通过PROFIBUS DP线进行下载。
当然,S7-1200 还可以通过连接CP1243-1扩展模块,然后电脑通过网线进行下载。
在这里只介绍最常用的第一种方法,后两种方法只需在下载页面修改接口类型或接口即可。
STEP 7 TIA Portal 软件向用户提供了简便、灵活的下载方式,操作步骤如下:
1.在项目树中,选中需要下载的项目文件夹,然后执行菜单命令"在线〉下载到设备"或直接点击工具栏上的图标"下载到设备",如图01所示。
图01.项目下载
另外,还可以下载单独的组件,例如硬件组态和程序块。在项目树中,右键点击项目文件夹,如图02所示,在弹出的菜单中会提供如下菜单命令:
"下载到设备〉硬件和软件(仅更改)":设备组态和改变的程序下载到CPU中。
"下载到设备〉硬件配置":只有硬件组态下载到CPU中。
"下载到设备〉软件(仅更改)":只有改变的程序块下载到CPU中。
"下载到设备〉软件(仅更改)":下载所有的程序块到CPU中。
S7-1200下载程序必须是一致性下载,也就是无法做到只下载部分块到CPU。
图02.单独组件下载
2.在弹出的"扩展的下载到设备"对话框中,设置PG/PC接口类型,其"PG/PC接口"下拉选项中选择编程设备的网卡,点击"开始搜索",如图03所示。
图03.搜索设备
3.搜索到可访问的设备后,选择要下载的PLC,当网络上有多个S7-1200PLC时,通过"闪烁LED"来确认下载对象,点击"下载"按钮,如图04所示。
图04.选择下载对象
4.如果编程设备的IP地址和组态的PLC不在一个网段,需要给编程设备添加一个与PLC同网段的IP。在弹出的对话框中分别点击"是"和"确定",如图05和图06所示。
图05.添加同网段IP确认
图06.添加IP完成
5.项目数据必须一致。如果项目没有被编译,在下载前会自动被编译。在"下载预览"对话框,会显示要执行的下载信息和动作要求。
图07.下载预览窗口
如果需要下载修改过的硬件组态且CPU处于运行模式时,需要把CPU转为停止模式,如图08所示。
图08.CPU运行模式要求
6.下载后启动CPU,如图09所示。
图09.启动CPU
下载常见问题
1. 下载菜单中的下载到设备和扩展的下载到设备有什么区别?
下载到设备等同于工具栏的下载按钮,当项目文件下载过后,项目会自动记录之前的下载行为,当点击下载到设备或者工具栏下载按钮,PC将直接和CPU建立连接,直接跳到如图07的下载预览页面。如果之前没有下载过项目文件,点击下载到设备或者工具栏下载按钮会跳到如图04的页面,需要设置接口,搜索等,然后才可以下载。
而点击扩展的下载到设备,就会像下载到设备,并且之前没有下载过项目文件的状态,从如图04的页面开始进行。
2. 通过无线路由或远程通信无法搜索到CPU,该如何下载?
因为第三方路由器通常不支持搜索CPU所需的DCP协议,所以只能通过直接访问CPU的IP地址去下载,如图10所示,在扩展的下载到设备页面的下方的访问地址处直接输入CPU的IP地址即可。
图10 直接输入访问地址
3. 什么情况下下载不会停机,什么情况下会停机?
下表列出了可在"RUN"操作模式下进行下载的程序和组态更改,按 CPU 的固件版本排序。
表格说明:
"RUN":可在"STOP"操作模式以及"RUN"操作模式下将更改下载到 CPU。
"RUN (< 21)":CPU 在一个程序周期中最多可以集成 20 个全新或修改过的对象/块。
"RUN (Init)":更改可以在"RUN"操作模式下进行下载;下载的数据块会重新初始化。
"STOP":更改只能在"STOP"操作模式下进行下载。
"STOP (Reset)":更改只能在"STOP"操作模式下进行下载;所有数据(包括保持性数据)都会重置。
V1.0 - 2.1 | V2.2 - V3.0 | V4.0 及更高版本 | |
更改操作/类型 | 可能的下载模式 | ||
硬件组件的已修改属性。其中包括对硬件配置注释的更改 | STOP | STOP | STOP |
修订的注释(新的、修订的、删除的),硬件配置的注释除外 | STOP | RUN | RUN |
同时下载的块数 | STOP | RUN (<11) | RUN (<21) |
将 PLC 程序下载到设备中并复位 | STOP (Reset) | STOP (Reset) | STOP (Reset) |
新 OB | STOP | STOP | STOP |
修改的 OB:代码更改 | STOP | RUN | RUN |
属性已修改的 OB(例如,周期时间更改) | STOP | STOP | STOP |
删除的 OB | STOP | STOP | STOP |
新的 FB/FC/DB/用户数据类型 (UDT) | STOP | RUN | RUN |
删除的 FB/FC/DB/用户数据类型 (UDT) | STOP | RUN | RUN |
修订的 FB/FC:代码更改 | STOP | RUN | RUN |
修订的 FB/FC:接口更改 | STOP | STOP | RUN |
修改的 DB(未启用存储器预留区域):已修改、添加或删除的变量的名称/类型 | STOP | STOP | RUN (Init) |
修改的 DB(已启用存储器预留区域):添加的新变量 | 无 | 无 | RUN |
修改的用户数据类型 (UDT) | STOP | STOP | RUN (Init) |
添加新的 PLC 变量(定时器、计数器、位存储器) | STOP | STOP | RUN |
修改的保持性设置(定时器、计数器、位存储器、DB区域) | STOP | STOP | STOP |
添加的硬件组件 | STOP | STOP | STOP |
修改的 DB:修改的属性(更改“仅存储在装载内存”属性) | STOP | STOP | RUN (Init) |
注:启用存储器预留区域是 V4.0及更高版本 CPU 的功能,具体参见“下载但不重新初始化”章节。
4. STEP 7 V13 SP1 编写的 S7-1200 V4.0项目, 可以正常下载到 FS: 04 S7-1200 CPU,但是无法下载到 FS:05 S7-1200 CPU,ERROR 指示灯红色闪烁报错 , CPU 无法启动 。为什么?
S7-1200 V4.2 模块兼容 V4.0 和 V4.1模块,且新订购的 V4.2 模块是 FS:05。
当使用 STEP 7 V13 SP1 编写 的 S7-1200 V4.0项目无法正常下载时,可考虑检查以下内容:
先检查 STEP7 V13 SP1 编写的 S7-1200 V4.0项目是否启用了高数计数器功能;
从“在线和诊断”检查实际使用的 S7-1200 固件版本。
如果 STEP 7 V13 SP1 编写 的 S7-1200 V4.0项目使用了高数计数器功能 ,且实际使用的 S7-1200 CPU 版本是V4.2 FS:05, 则无法执行下载,CPU ERROR 指示灯红色闪烁报错 ,CPU 无法启动。
这是因为 S7-1200 V4.2 高速计数器新增了门控制等功能, 不能将旧版本组态的下载到 V4.2 FS: 05 CPU。
解决方法:
1. 将项目升级至STEP 7 V14,然后重新组态高速计数器后将项目下载到 V4.2 FS: 05 CPU。
2. 将 S7-1200 CPU 升级到 V4.2.1后再执行项目下载。
S7-1200 下载但不重新初始化
●说明
为了可以编辑已经过调试且在系统上正常运行的 PLC 程序,S7-1200 V4 及更高版本的 CPU 支持在运行时对FB块或数据块接口进行扩展。无需将 CPU 设置为 STOP 模式,即可下载已修改的块,而不会影响数据块其他的值。这是一种简单的更改程序的方式。这一加载过程(无需重新初始化的下载)不会对所控制的过程造成负面影响。
●工作原理
原则上,每个FB块或数据块都默认有一个存储器预留区域,用于后续的接口更改。在初期并未使用该存储器中所预留的区域。如果确定在编译和下载块之后加载接口更改,则需激活存储器预留区域。之后声明的所有变量都将保存到存储器预留区域中。后续的下载不会影响已经加载变量的值。
如果决定稍后在工厂没有运转时修改程序,那么还可以一次性重置一个或多个块的存储器布局。通过该操作,可以将所有变量从预留区域移动到常规区域。预留存储器清除后,可供以后的接口扩展时使用。
●要求
如果满足以下要求,1200 CPU 则可使用"无需重新初始化的下载"功能:
使用 S7-1200 V4 及更高版本的 CPU。
FB块使用 LAD、FBD 或 SCL 创建。
DB块由用户创建。
FB或DB必须是"优化访问"。
●基本步骤
如果希望扩展FB块或数据块的接口,请执行以下步骤,然后在不重新初始化的情况下加载块。
在默认情况下,所有块在非保持性存储器中都预留有一个100个字节的空间,并在需要时,可以调节存储器预留区域的大小或在保持性存储器中定义其它存储器预留区域。
激活存储器预留区域。
扩展块接口。
编译块。
将块下载到 CPU。
设置块扩展的预留存储器
●简介
基本上,每个FB块或数据块在默认情况下都预留了100个字节的区域。这一预留区域不在块的保持型存储区中。默认情况下,保持型存储区中没有提供预留区域,这是因为保持型存储器仅限 CPU 使用。
可以更改默认值100个字节,这适用于项目中所有新创建的块。此外,还可以单独更改特定块中预留区域的大小,并在保持型存储区中为特定块定义一个预留区域。
●设置新块中预留存储器的大小
如果要在项目中为所有新创建的块设置预留存储器的大小,请按以下步骤操作:
在"选项"菜单中,选择"设置"命令。将在工作区中显示"设置"窗口。
在区域导航中选择"PLC 编程 > 常规"组。
在"下载但不重新初始化"组中,在"存储器预留"的输入框中输入为块接口进行后续扩展而分配的所需字节数。新创建的FB块和全局数据块现在获得了一个具有指定大小的预留存储器。已经存在的块不受此次更改的影响。
说明
此设置仅对支持"下载但不重新初始化"功能的块有效。其它块不受此设置的影响。
图1.为所有新创建的块设置预留存储器的大小
●设置现有块中预留存储器的大小
如果要设置现有块中预留存储器的大小,请按以下步骤操作:
在项目树中选择该块。
右键快捷菜单中选择"属性"命令。将打开"属性"对话框。
在浏览区中选择"下载但不重新初始化"组。
在"预留的存储空间大小"输入框中输入所需的字节数。
如果要在保持型存储器中定义一个预留区域,请选择"启用下载,但不重新初始化保持性变量"复选框并在"预留可保持性存储器"输入框中输入所需的字节数。
说明
如果已为当前块激活了预留存储器,那么无法再更改预留存储器的大小。
图2.设置现有块中预留存储器的大小
激活存储器预留区域
●简介
每个FB块或数据块都被分配有一个默认存储器预留区域。但是,该存储器预留区域在初期并未使用。如果已编译且加载了块,然后希望稍后加载接口更改,那么请激活存储器预留区域。随后声明的所有变量都将保存到存储器预留区域中。
●要求
块目前已被编译。
块包含存储器预留区域。
●步骤
若要为FB块或全局数据块激活存储器预留区域,请按以下步骤操作:
打开块。
选择工具栏上的"下载但不重新初始化"按钮。
●结果
所有新声明的变量都将保存在存储器预留区域中,因此可以在不影响正在运行的进程的情况下进行下载。
无法再删除现有变量。除了"默认值"、"起始值"和"注释"属性之外,其它属性均不得再进行更改。
图3.激活存储器预留区域
扩展块接口或数据块
●简介
在激活FB块或全局数据块的预留存储器之后,可添加新变量。
●要求
预留存储器已激活。
●步骤
要声明其它变量,请按以下步骤操作:
选择声明部分,例如"Input"、"Output"、"InOut"或"Static"。
在所选区域中,声明一个或多个变量,并在列中输入其属性。在 FB 的"保持性"列中,只能在"保持性"和"非保持性"之间进行选择,预留存储器中无法使用选项"在 IDB 中设置"。无法在结构化数据类型变量中添加新的变量。例如:无法在现有结构中声明任何新的结构元素。但是,可以在预留存储器中创建新结构。
编译发生变更的块,例如,在项目树中选择该块,然后在快捷菜单中选择命令"编译 > 软件(仅变更)"。在编译期间,新声明的变量将插入到预留存储器中。如果预留存储器过小,编译将终止,并显示一条错误消息,通知发生错误。
加载发生变更的块,例如,在项目树中选择该块,然后在快捷菜单中选择命令"下载到设备 > 软件(仅变更)"。加载块扩展时,仅初始化定义有初始值的新加变量。并不会重新初始化现有在线变量。
图4.如果预留存储器过小,编译将终止
禁用存储器预留区域
●简介
为了稍后在工厂尚未运转时修改块的存储器布局,可以禁用预留存储器。通过此操作,可以将所有变量从预留区域移动到常规区域。预留存储器仍然存在,可供之后进行接口扩展时使用。并再次具有块属性中所定义的空间大小。
说明
请注意,在禁用预留存储器之后,需要对块进行编译并再次加载。在禁用存储器预留区域后,无法执行"无需重新初始化的下载"。
●要求
块中的预留存储器已激活。
●步骤
如果要激活FB块或全局数据块的预留存储器,请按以下步骤操作:
打开块。
选择工具栏上的"下载但不重新初始化"按钮。
●结果
通过此操作,可以将之前位于预留区域的所有变量都移动到常规区域。因此,需要对块进行编译并再次加载,CPU 中变量的值在加载期间重新初始化。
图5.取消存储器预留区域
重置预留存储器
●简介
如果决定稍后在工厂尚未运转时修改程序,那么可以一次性重置块的存储器布局。通过此操作,可以将所有变量从预留存储器移动到常规存储区域中。预留存储器清除后,可供以后的接口扩展时使用。
●要求
块中的预留存储器已激活。
预留存储器包含有变量。
●步骤
要重置一个或多个块的预留存储器,请按以下步骤操作:
选择"程序块"文件夹,或该文件夹中的特定块。
在快捷菜单中,选择"编译 > 软件(复位存储器预留区域)"命令。
●结果
之前位于预留存储器中所选块的所有变量,都从此区域移动到常规区域中。块已经过重新编译。变量在下一次加载期间重新初始化。块中所组态的预留存储器将保留,且继续保持活动状态。
图6.重置预留存储器
●注意
重置预留存储器时,在预留存储器中之前设置的所有变量都将在下次加载时重新初始化。这适用于保持性和非保持性变量。
在工厂运行期间,更改变量值将导致严重的财产损失和人身伤害!因此,在重置预留存储器后必须先在测试环境中进行全面彻底地程序检查之后,才能使用。