0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

S7-1200 PLC配方功能快速入门和使用方法

sharepcb 来源:直观学PLC 作者:直观学PLC 2022-11-18 11:00 次阅读

配方功能介绍

配方通常有两种使用场景,一种是生产不同的产品,使用不同的工艺参数,一种是在生产一种产品过程中有很多步骤,每个步骤都是有不同的参数。

通常这些参数数据存放在CPU工作存储器的DB块或M区,但是很多时候这些数据的数据量特别大,数值却是固定不变的,或者只是偶尔在需要的时候小做改动。

而对于S7-1200来说,工作存储器最大也只有150kB(S7-1217C),所以可以考虑将这些数据,放入更大的装载存储器。对于S7-1200,内置装载存储器有1MB(S7-1211C、S7-1212C)、2MB(S7-1214C V3.0以下)和4MB(S7-1214C V3.0以上、S7-1215C、S7-1217C)三种,如果通过存储卡扩展,理论上可以最多到32GB。

TIA PORTAL STEP 7 V11 SP2 开始,S7-1200 固件版本 V2.0 开始,S7-1200支持将DB块仅存储在装载内存中。并且提供指令READ_DBL将仅存储在装载存储器的数据复制到工作存储器,WRIT_DBL将工作存储器的数据复制到仅存储在装载存储器的数据块。这样就可以在需要时获取配方数据与修改配方数据。但是这时通常只能在TIA PORTAL软件的DB块中编辑配方数据,不是很方便。

从 TIA PORTAL STEP 7 V13 开始,S7-1200 CPU 固件版本 V4.0 开始,又提供了两条配方函数指令,使得配方数据可以导入、导出,得以在PC上使用EXCEL等软件更方便的编辑。

其中RecipeExport指令将完整的配方数据块导出,存储在 CPU 装载存储器的永久性配方数据文件中。配方数据文件按照标准 CSV 格式存储在 S7-1200 CPU 装载存储器中。

而RecipeImport指令将配方数据从装载存储器上的 CSV 文件导入到装载存储器上的配方数据块中。此过程会覆盖之前数据块中的值。

注意:以上四个指令都不支持使用PLCSIM进行仿真,只能使用真实CPU。

配方相关指令

配方相关指令位于以下路径:扩展指令—>配方和数据记录—>配方函数以及扩展指令—>数据块控制,具体位置参见图 1 红框。

add2206e-6664-11ed-8abf-dac502259ad0.jpg

图1 配方相关指令

配方功能快速入门

配方数据文件按照标准 CSV 格式存储在 S7-1200 CPU 装载存储器或 S7-1200 SIMATIC 存储卡“程序卡”中。分别可通过 PLC Web 服务器或对于存储卡文件操作,将数据文件传送到 PC 进行管理和查看。也可将修改过后的配方数据文件上传至PLC,再通过“RecipeImport”配方导入指令更新PLC装载存储器中配方数据块的数值。

测试实例:

SIMATIC S7-1200 系列 CPU 使用配方数据功能,需要注意以下几两点:

程序中创建一个配方数据块,此 DB 块必须存储在 CPU 装载存储器中,可以使用 CPU 内部装载存储器或程序卡

程序中创建一个活动配方数据块,此 DB 块必须在 CPU 工作存储器中,使用程序逻辑读取或写入一个活动配方记录

下面,举例说明用 S7-1200 实现配方的写入和读取功能。为方便配方数据操作,按照下图思路进行项目编程

ade6ee86-6664-11ed-8abf-dac502259ad0.jpg

图1 配方项目框图

测试环境:

操作系统:Win 10 64bit Pro 1703

软件:TIA PORTAL V15 Update 4

测试软件:Notepad++ V7.5.8

硬件:S7-1215C DC/DC/DC V4.2.3

订货号:6ES7215-1AG40-0XB0

实现步骤

1.定义一个 PLC 数据类型(UDT)

配方数据块必须包含数组,可以是一维的也可以是多维的,数组元素是 PLC 数据类型或结构。在这个配方实例中使用 PLC 数据类型创建配方数据块。

在此,创建一个 PLC 数据类型,以定义一个配方记录中的所有组成,以制造蛋糕为例,建立UDT过程参见链接,建好后如图2所示。

ae07ac16-6664-11ed-8abf-dac502259ad0.jpg

图2.定义 PLC 数据类型

数据类型是一个数据模板,它在每个配方数据块以及活动配方数据块中重复使用。输入所有实例配方共用的成分名称和数据类型,根据分配给配方成分的数值不同而产生不同的产品配方。

2.使用 PLC 数据类型创建配方数据块

创建一个配方数据块,为全局数据块,并启用数据块属性"仅存储在装载内存中",如图3红圈所示。本例中,配方数据 DB 块名称为 "DB1_蛋糕配方”,如图4所示,插入一个数组类型变量,数组元素的数据类型为"蛋糕配方",本例中设置数组限值0..7,即可创建8个配方,可根据实际情况调整。

注意,如果需要使用RecipeExport和RecipeImport导入导出,配方DB块的名称中尽量不出现中文字符,否则在WEB页面操作会略微麻烦一些,具体详见配方数据的管理。本例为显示直观,所以使用了“DB1_蛋糕配方”的名字。

ae1c8da2-6664-11ed-8abf-dac502259ad0.jpg

图3.定义数据块属性

ae3281ac-6664-11ed-8abf-dac502259ad0.jpg

图4.创建配方数据块

对于图3的优化的块访问选项,一般默认激活,因为从S7-1200 V4.2起,对于仅存储于装载存储器的优化块的大小限制为256kB,而仅存储于装载存储器的非优化块仅有64kB,显然优化块可以存储更多的配方记录,如果单个配方数据太多,需要放在多个DB中,也可以减少DB块个数。

3.在工作存储器中创建活动配方 DB,并通过“READ_DBL”和“WRIT_DBL”指令实现对装载存储区配方数据块的读写操作

在工作存储器中准备一个活动配方数据块,用于配方数据的写入和读取。在本例中,在工作存储器中创建了一个全局数据块,名称为 "DB2_活动配方”,类型为“蛋糕配方”,如图5所示。

ae45ee4a-6664-11ed-8abf-dac502259ad0.jpg

图5.添加活动配方块

确定后,就可以得到活动配方数据块,该块只由一组配方组成,如图6所示。

ae63d568-6664-11ed-8abf-dac502259ad0.jpg

图6.活动配方数据块

注意,因为指令“READ_DBL”和“WRIT_DBL”的缘故,要求活动配方数据块与配方数据块的优化属性必须相同,即都同时是优化数据块,或者同时是非优化数据块。

将这个 DB 块作为与装载存储器中配方数据块的接口,分别通过指令“WRIT_DBL”能实时将存于工作存储器的活动配方数据写入至装载存储器的配方数据块,或者通过指令“READ_DBL”实时读取装载存储器的配方数据块到工作存储区中活动配方数据。

4.导出配方数据块

对于S7-1200 V4.0及其以后版本的CPU,可以使用指令RecipeExport和RecipeImport对配方数据块进行导入和导出,在电脑上使用EXCEL、ASCII编辑器等工具编辑。

对于S7-1200 V4.0以前的版本,一般建议直接在配方数据块的起始值输入配方,这一部分用户可以直接跳过下面4-6步,直接看第7步。

在本例中,直接在OB1使用LAD语言调用RecipeExport和后面的RecipeImport块,实际使用时可以在FC/FB,或者FB的多重背景中使用,语言也可以使用FBD、SCL。

首先新建DB块,用于调用块的请求与状态位等,名称为"DB3_操作",建立结构体"Export",以及相关变量,如图7所示。

ae7d9106-6664-11ed-8abf-dac502259ad0.jpg

图7. 建立结构体

在 OB1 调用RecipeExport,以及捕捉是否完成及错误代码等程序,如图8所示。

ae92378c-6664-11ed-8abf-dac502259ad0.jpg

图8.调用RecipeExport指令

5.配方csv文件的导入和导出

可以使用Web服务器或者存储卡的方式对csv文件进行导入和导出,在电脑上的Excel等软件上进行配方数据的编辑,具体操作详见配方数据的管理。

6.导入配方数据块

当配方文件通过WEB上载完成,或通过存储卡重新导入文件后,就可以导入配方数据块。和第4步类似,在DB块"DB3操作",中建立结构体"Import",以及相关变量,结构同"Export",如图9所示,用于RecipeImport的请求与状态位。

aea31138-6664-11ed-8abf-dac502259ad0.jpg

图9. 建立结构体

在 OB1 调用RecipeImport,以及捕捉是否完成及错误代码等程序,如图10所示。思路同第4步。

aeb70a76-6664-11ed-8abf-dac502259ad0.jpg

图10.调用RecipeImport指令

7.读取配方数据

经过使用配方指令或者直接在配方数据块的编辑,此时配方数据已经保存在PLC的装载存储器中,需要使用READ_DBL指令读取出来。可以在DB块"DB3操作",建立一个Int类型变量Index用作配方编号。对于本例,配方数组限值为0-7,所以该配方编号变量取值范围也是0-7,可以在HMI画面上设置该值,也可以在程序中设置该值。此外同样在DB块"DB3_操作",建立结构体"Read",以及相关变量,用于READ_DBL的请求与状态位,如图11所示。

aec743fa-6664-11ed-8abf-dac502259ad0.jpg

图11.建立Index变量及结构体

然后利用数组的索引寻址功能,将配方数组指定索引的变量读取到活动配方,即如果需要配方0送到活动配方数据块,则Index赋值为0,需要配方1送到活动配方数据块,则Index赋值为1,......,具体程序如图12所示。

aed9e7a8-6664-11ed-8abf-dac502259ad0.jpg

图12.读配方

然后就可以直接使用活动配方了,不论是程序中,还是HMI画面中。例如本例中,当Index=0时,读出的活动配方DB,如图13所示。

aeec1554-6664-11ed-8abf-dac502259ad0.jpg

图13.活动配方数据

8.在线修改配方

通常配方功能使用到第7步就可以结束了,如果需要偶尔小范围修改配方数据,不想大规模导入导出,或者不想打开程序修改配方数据起始值,可以使用WRIT_DBL指令实现该功能。

对于本例依然利用DB块"DB3_操作"的变量Index,确定需要修改的配方编号,实际编程可以根据需要使用和读配方不一样的配方编号变量。

通常在HMI画面上指定需要修改的配方编号,并且将活动配方的变量与HMI的IO域关联,使用一个按钮触发READ_DBL的REQ将该配方编号对应的参数都读取到活动配方,即映射到了IO域,然后再修改其中需要修改的变量,最后再使用另外一个按钮触发WRIT_DBL的REQ实现将改后的活动配方写入该指定配方编号对应的配方,参考画面如图14。

af053084-6664-11ed-8abf-dac502259ad0.jpg

图14.HMI画面

同样在DB块"DB3_操作",建立结构体"Write",以及相关变量,结构同"Read",用于WRIT_DBL的请求与状态位,如图15所示。

afcd7788-6664-11ed-8abf-dac502259ad0.jpg

图15.建立结构体

最后同样,利用数组的索引寻址功能,将活动配方写入到配方数组指定索引的变量,即如果需要修改配方0,则将Index赋值为0,修改活动配方数据块后写入,需要修改配方1,则将Index赋值为1,修改活动配方数据块后写入,......,具体程序如图16所示。

afdd2a34-6664-11ed-8abf-dac502259ad0.jpg

图16.写配方

本例如图17所示,读出Index为0的配方,然后修改黄油数据为2.0,点击“写入配方”按钮即可修改配方DB的值。

afeef69c-6664-11ed-8abf-dac502259ad0.jpg

图17.HMI修改数据

配方数据的管理

配方数据文件以 CSV 格式存储在永久性存储器中。可以使用以下两种方法查看、管理配方数据:

1. 通过内置的 PLC Web 服务器功能;

2. 通过电脑查看 PLC 存储卡中的配方文件;

S7-1200 SIMATIC 最新存储卡订货号如下:

订货号 容量
6ES7954-8LC03-0AA0 4MB
6ES7954-8LE03-0AA0 12MB
6ES7954-8LF03-0AA0 24MB
6ES7954-8LL03-0AA0 256MB
6ES7954-8LP03-0AA0 2GB
6ES7954-8LT03-0AA0 32GB

使用 PLC Web 服务器查看配方数据

激活CPU的Web服务器功能,则可以使用电脑网口连接CPU的PROFINET接口或者扩展CP1243-1的网口,然后使用电脑的IE浏览器访问 PLC 内置的 Web 服务器。

1.启用 Web 服务器

在目标 CPU 的设备配置中启用 Web 服务器,具体参考Web服务器配置。

使用配方功能,需要具有“读取文件”和“写入/删除文件”功能。若要求更多访问功能,可以勾选相应权限。本例中只用默认用户,实际可以根据需要设置用户及权限,如图 1 所示:

b0005a40-6664-11ed-8abf-dac502259ad0.jpg

图1.定义 Web 服务器的用户权限

2. 通过 PROFINET 网络将 PC 连接到 PLC

通常情况下,电脑网口网线或通过交换机连接CPU的PROFINET接口或者扩展CP1243-1的网口。

3. 登录内置 Web 服务器

在 IE 浏览器地址栏中,本例中输入 192.168.1.3 或者输入 CP1243-1的 192.168.1.28。通过 Web 服务器的文件浏览器页面来读取配方数据文件, 浏览器操作界面如图 2 所示:

b01701c8-6664-11ed-8abf-dac502259ad0.jpg

图2.Web 服务器的用户界面首页

在左侧项目栏中,选择"文件浏览器",如图 3 所示:

b037096e-6664-11ed-8abf-dac502259ad0.jpg

图3.Web 服务器的文件浏览器页面

进入"Recipes"文件夹后,即看到与 PLC 设置的配方数据块名称相同的配方数据文件,如图 4 所示:

b04f57d0-6664-11ed-8abf-dac502259ad0.jpg

图4.配方数据文件名称

此时左键单击csv文件即可以下载,下载后记得点击删除按钮,将该配方文件删除。

注意:如果配方DB名称含有中文字符,例如本例的"DB1_蛋糕配方",如果TIA PORTAL版本在V14以前,则无法下载,可以通过右边重命名为只有字母和数字的名称后下载,修改后上传文件前,需要将文件名改为原来正确的名字。

TIA PORTAL版本V14及其以后,中文名称的文件可以下载,但是下载的文件名将为乱码,本例中如图5所示。保存至本地前将文件名改为正确的名字。

正因如此,建议配方DB名称最好不出现中文。

b06e0bd0-6664-11ed-8abf-dac502259ad0.jpg

图5.下载乱码文件名

4.编辑配方文件

配方条目名称的编码,String,WString数据类型的编码各有不同,如果需要导出变量到CSV文件编辑会带来以下问题,注意:

1. 不要在配方中使用WChar与WString数据类型。

2. 如果配方条目名称中出现中文,或果配方条目的String类型出现中文,都不要使用Excel进行编辑,例如本例。

3. 配方条目名称中出现中文,与配方条目的String类型出现中文,不要同时出现。

所以最好在配方中不出现任何中文,这样导入导出不会出现任何问题,还可以使用Excel进行编辑。否则就需要使用ASCII编辑器,例如Windows自带的文本文档,或者本例中使用的Notepad++。

编辑好的CSV如图6所示。

b080331e-6664-11ed-8abf-dac502259ad0.jpg

图6.CSV文件

在修改时需要注意:

1. 配方DB包含的条目数不能再增加,数组的限值限制了配方的条目数。

2. 只能修改配方内容,不要修改第一行的配方条目名称以及第一列的索引。

3. 使用ASCII编辑器容易数据错位,所以最好配方全部内容使用英文字母+数字,然后使用EXCEL等工具编辑。

5.上载配方文件

编辑好配方文件,即可以上载该文件,如图7所示。

b0993e22-6664-11ed-8abf-dac502259ad0.jpg

图7.上载修改的CSV文件

查看 PLC 存储卡中的配方

如果 S7-1200 CPU 中插入了存储卡,则可以取出该存储卡,然后将该卡插入 PG/PC 上的标准 SD 卡槽或 MMC 卡槽中。在 Windows 资源管理器中导航至存储卡中的 Recipes 目录,复制配方文件到PC的本地驱动器中,使用ASCII编辑器或者Excel 打开即可。操作步骤如下:

1. 将插好 S7-1200 存储卡的读卡器插入 PC,以U盘形式打开该卡,全选删除所有文件。

2. 在 TIA PORTAL 软件中按照以下路径和方法打开存储卡:“项目树”→“读卡器/USB 存储器”→“鼠标选中需要打开的存储卡盘符”(如下图所示的 I:)→“鼠标右键”→属性”,如图 8所示:

b0ae01fe-6664-11ed-8abf-dac502259ad0.jpg

图8.打开读卡器

3. 鼠标选中“属性”后打开存储卡,设置卡类型:程序。如图9 所示:

b0c0c15e-6664-11ed-8abf-dac502259ad0.jpg

图9.设置“程序卡”

4. 将该卡插入S7-1200卡槽,下载程序后,程序即保存到程序卡中。

5. 配方数据块使用指令导出后,会在存储卡中生成对应的配方文件,例如本例中的“DB1_蛋糕配方.csv”。

6. CPU断电,将存储卡取出,将插好 S7-1200 存储卡的读卡器插入 PC,以U盘形式打开该卡,打开 Recipes 目录,找到配方文件。本例中和图6问题相同,中文名称出现乱码,如图 10 所示。但是这里注意,不要修改该名称。

b0e253aa-6664-11ed-8abf-dac502259ad0.jpg

图10.程序卡文件夹

7. 此时即可以对该配方文件进行编辑,编辑文件注意事项参见通过Web导出的步骤4,编辑后重新拷贝回Recipes文件夹,执行配方导入指令。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • plc
    plc
    +关注

    关注

    5006

    文章

    13084

    浏览量

    461209
  • 存储器
    +关注

    关注

    38

    文章

    7413

    浏览量

    163466
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10794

    浏览量

    210662

原文标题:S7-1200 PLC配方功能使用方法

文章出处:【微信号:直观学PLC,微信公众号:直观学PLC】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    西门子S7-1200 PLC的指令介绍

    西门子S7-1200 PLC,作为西门子自动化控制产品中的一款紧凑型控制器,凭借其强大的功能和易用性,在工业控制领域得到了广泛的应用。S7-1200
    的头像 发表于 06-18 14:52 2162次阅读

    西门子S7-1200 PLC如何通过模拟量控制变频器

    在现代工业自动化领域中,变频器因其能实现对交流电动机的平滑调速而得到了广泛应用。西门子S7-1200 PLC(可编程逻辑控制器)作为工业控制领域的重要设备,其通过模拟量控制变频器的方式,不仅提高了
    的头像 发表于 06-18 09:26 2070次阅读

    简述S7-1200 PLC的硬件组成

    。其强大的功能和灵活的扩展性使得它成为工程师和技术人员在自动化项目中不可或缺的工具。本文将详细阐述S7-1200 PLC的硬件组成,以期为读者提供全面、深入的了解和参考。
    的头像 发表于 06-14 10:04 3928次阅读

    西门子S7-1200 PLC的优缺点分析

    西门子S7-1200 PLC作为自动化控制系统中的核心组件,自推出以来就受到了广泛关注。其紧凑的模块化设计、强大的功能以及灵活的扩展性,使得它在工业自动化领域占据了重要的地位。然而,任何产品都不是
    的头像 发表于 06-13 11:33 2581次阅读

    西门子S7-1200 PLC的基本功能

    西门子S7-1200 PLC(Programmable Logic Controller)是一款紧凑型、模块化的可编程逻辑控制器,专为满足各种自动化应用需求而设计。其强大的功能、灵活的配置以及卓越
    的头像 发表于 06-13 11:29 1747次阅读

    S7-1200 CPU 存储卡的应用分析

    S7-1200 CPU 使用的存储卡为 SD 卡,存储卡中可以存储用户项目文件,有如下3种功能: 作为 CPU 的装载存储区,用户项目文件可以仅存储在卡中,CPU 中没有项目文件,离开存储卡无法运行。
    发表于 03-15 11:11 951次阅读
    <b class='flag-5'>S7-1200</b> CPU 存储卡的应用分析

    如何使用S7-1200 CPU的存储卡呢?

    S7-1200 CPU 使用的存储卡为 SD 卡,存储卡中可以存储用户项目文件,有如下3种功能
    的头像 发表于 02-26 09:53 1632次阅读
    如何使用<b class='flag-5'>S7-1200</b> CPU的存储卡呢?

    S7-1200如何实现内部数据的掉电保持?

    S7-1200 PLC 可以通过多种方式实现内部数据的掉电保持,以确保在断电或重启后数据不会丢失。
    的头像 发表于 01-29 16:11 6604次阅读

    透传网关基于4G/以太网/WIFI联网实现西门子S7-1200/1500PLC的远程监控和程序上下载

    【技术分享】远程透传网关-单网口快速实现西门子S7-1200/1500 PLC程序远程上下载
    的头像 发表于 01-19 09:30 1345次阅读
    透传网关基于4G/以太网/WIFI联网实现西门子<b class='flag-5'>S7-1200</b>/1500<b class='flag-5'>PLC</b>的远程监控和程序上下载

    西门子S7-1200S7-300PLC之间的区别有哪些?

    S7-1200作为新推出的紧凑型控制器,其产品定位在原有的SIMATIC S7-200和S7-300之间,它与S7-300的区别主要体现在硬件、通信、工程、存储器、
    的头像 发表于 01-10 10:54 974次阅读
    西门子<b class='flag-5'>S7-1200</b>与<b class='flag-5'>S7-300PLC</b>之间的区别有哪些?

    s71200可用step7S7-1200的硬件结构

    S7-1200主要由CPU模块、信号板、信号模块、通信模块和编程软件组成,各种模块安装在标准DIN导轨上。
    发表于 01-10 10:53 2166次阅读
    <b class='flag-5'>s</b>71200可用step<b class='flag-5'>7</b>吗 <b class='flag-5'>S7-1200</b>的硬件结构

    西门子plc如何选型 s7-1500和s7-1200区别

    S7-1200是一种小型的PLC,适用于小型自动化应用。它具有较小的尺寸、较低的成本和中等级别的性能。S7-1200系列提供了多种CPU型号和不同数量的I/O模块,可扩展性较强。
    发表于 01-10 10:48 5137次阅读

    plc西门子s7-1200基础知识:plcplc之间如何通讯

    S7-1200编程软件是Siemens TIA Portal,可以用于编写程序并对PLC进行配置和调试。此外,还有一些辅助软件和工具可用于帮助用户诊断故障和管理数据。
    的头像 发表于 01-10 10:43 2518次阅读

    PLC西门子S7-200smart和S7-1200的区别?

    ,但在功能和性能上存在一些区别。下面是对S7-200 smart和S7-1200进行详细比较的文章。 首先,让我们从外观上比较这两款PLCS7
    的头像 发表于 11-17 11:41 9401次阅读

    S7-1200下载项目程序步骤详解

    S7-1200的CPU本体上集成了PROFINET通信口,通过这个通信口可以实现CPU与编程设备的通信。 此外,S7-1200 可以通过连接CM1243-5扩展模块,然后电脑通过PC ADAPTER USB A2电缆、或者电脑上的CP卡(例如CP5612)通过PRO
    发表于 11-15 15:45 4268次阅读
    <b class='flag-5'>S7-1200</b>下载项目程序步骤详解