电气新手不得不知的:西门子S7-12001500PLC的编程思维
西门子S7-1200/1500PLC的编程思维
一、程序规范化建设
规范化是一个循序渐进的知识积累的过程,提取经常使用的程序,去除全局变量(I、Q、M、T、C),去除数据块,设置规范的参数,把它做成带接口的FB,放到规范库中。
规范化是一个“固化→进化→固化→进化”不断优化的过程。
规范化对于程序设计者的优点:
1、模块化和面向对象的编程方式,构建大型项目较容易。
2、便于程序块的持续更新,功能更全面。
3、程序的架构比较容易被后来者学习传承、更新。
4、设计方式统一,一致性好,提高设计效率。
5、提高了软件的质量和产品的竞争力。
规范化对于最终用户(设备维护、使用者)的优点:
1、快速定位设备系统故障,快速修复设备,减少停机时间。
2、维护人员较容易看懂规范化的程序。
3、规范化的程序,让维护人员对设备的技术改造更简单。
二、控制对象的拆分
在工程师面向对象(项目)时,要有“庖丁解牛,目无全牛,只有结构”的思想,对一台完整的机器设备进行拆分,把它分为若干个控制单元,一个控制单元可以再往下细分若干个设备模块,一个设备模块再往下可以分为不同的控制模块,如感应模块、驱动模块等。拆分的模块要大小适中,太大不灵活,太小拼装效率低。
结构清晰明了,整体也就优化了。
这样的方式就是为了程序的模块化,使程序块方便重复使用。
三、用FB还是FC
如果从C语言等高级语言的角度来看,FB相当于“类别”,FC相当于“方法”。所以将工艺对象的具体的物件用FB块编程比较方便,更有利于后期程序的规范化。如果是控制对象的数据转换、计算功能(FB调用FC),以及程序的划分、控制对象预处理等非规范化功能可用FC来编程(FC调用FB)。
具体使用情况根据不同工程师的使用习惯有所不同,简单概括为:1、具体的工艺对象用FB。2、数据转换、计算用FC。3、调用全局变量对程序控制用FC。
速看!西门子S7-12001500配方实例程序
关注“PLC发烧友 ”,一起涨知识!
私信回复:64,免费领取西门子64本电子书!
下面列出了配方示例程序的先决条件:
1.一个存储所有配方记录的配方数据块。配方数据块存储在装载存储器中。
2.在工作存储器中存储一个配方副本的活动配方数据块。
1
创建活动配方数据块
在“添加新块”(Add new block) 窗口中,选择“数据块”(Data block)按钮,
在“类型”(Type) 下拉菜单中,选择您先前创建的“Beer_recipe”PLC数据类型。
不需要起始值。在将一个配方从配方数据块传送到活动配方数据块时,数据块数据值将置位。在本实例中,活动配方数据块是 READ_DBL 的目标数据并为 WRITE_DBL 提供源数据。下图显示 Active_Recipe 数据块。
▲ 背景数据块
指令RecipeExport ("RecipeExport_DB") 和RecipeImport ("RecipeImport_DB") 使用的背景数据块是在将指令置于程序中时自动创建的。 背景数据块用于控制指令的执行,不在程序逻辑中引用。
2
示例配方程序
程序段 1 REQ 上升沿启动导出过程。CSV 文件由配方数据块数据生成并被置于 CPU存储器配方文件夹。
程序段 2 捕获 RecipeExport 执行的 STATUS输出,考虑到该指令仅在一个扫描周期内有效。
程序段 3 REQ 上升沿启动导入过程。 现有配方数据块载入读取自 CPU存储器配方文件夹的相应 CSV 文件中的所有配方数据。
程序段 4 捕获 RecipeImport 执行的 STATUS输出,考虑到该指令仅在一个扫描周期内有效。
程序 5 READ_DBL 从配方“Recipe_DB”中复制起始值。 结果值[1](在 CPU 的装载存储器中)至 Active_Recipe DB 的当前值(在 CPU 的工作内存中)。READ_DBL 执行后,程序逻辑通过在 Active_Recipe 数据块中寻址可以访问配方成分值。
例如,符号地址("Active_Recipe".productname)和 ("Active_Recipe.water) 为程序逻辑提供当前配方名称和用水量。
程序段 6 运行期间,HMI 设备可以修改 Active_Recipe 数据块中存储的成分值。可以通过执行 WRIT_DBL 存储改进的配方数据。 本例中,Recipe_DB 的全部起始值都用于这一个配方 "Recipe_DB"。 结果值 [1] 被 "Active_Recipe" 数据块中的当前值覆盖。
来源:网络,如有侵权,请联系删除!
私信回复:64,免费领取西门子64本电子书!
相关问答
1500plc怎么样编程比较节省程序资源?
编程时可以采用一些技巧来节省程序资源。首先,优化算法和数据结构选择,使用高效的算法和数据结构可以减少程序的执行时间和空间复杂度。其次,合理使用变量和...
1500plc程序如何上传?
1500系列PLC的程序上传可以通过Step7或TIAPortal软件来完成。具体步骤如下:连接PLC和电脑,并在软件中建立连接;在软件中打开工程并选择PLC;点击“在线”...
1500plc之间的通信怎么实现?
主要看你是什么品牌的PLC,不同品牌的PLC支持的协议是不一样的,一般组态王是支持Modbus和ModbusTCP协议,如果PLC支持这两种协议,可以直接通信,如果不支持需...
plc1500电脑安装配置要求?
PLC1500电脑安装配置要求较高。首先,需要一台具备较高处理能力的计算机,建议至少配备IntelCorei5或AMDRyzen5处理器。其次,内存要求至少8GB,以确保运行...
西门子1500db块如何编写?
西门子1500DB块是西门子PLC(可编程逻辑控制器)中的一种数据块类型。编写1500DB块需要使用PLC编程软件,比如西门子的TIAPortal软件。下面是一个简单的步骤来...
S7–1500PLC的硬件配置过程?
操作S7-1500PLC的硬件配置可以分为以下几个步骤:1.确定所需的S7-1500CPU型号:S7-1500PLC有不同的CPU型号可供选择,具有不同的性能和功能特点,需要根据...
西门子plc1500如何组态第三方?
要组态第三方设备,需要执行以下步骤:1.在TIAPortal中创建一个新的项目。2.选择PLC1500型号,下一步。3.选择通信网卡类型,输入PLC的IP地址等信息。4...
1500plc可以带多少profinet设备?
根据PROFINET网络的规范,一个PROFINET网络可以支持最多256个节点。每个节点可以是一个PROFINET设备,如PLC、传感器、执行器等。因此,1500PLC可以连接最多256个...
wincc怎样与1500plc建立连接?
要将WinCC与S7-1500PLC连接,你需要进行以下步骤:在WinCC项目中添加S7-1500的PLC设备设置PLC连接参数,包括PLC的IP地址、端口号和连接类型配置WinCC的数据.....
在通信程序中,如何实现PLC与多台变频器的MODBUS/RTU通信?
首先不同的PLC、不同的变频器的设置方法和通信程序不一样,包括使用的通信指令、接线方法,MODBUS寄存器地址,需要我...如何实现PLC与多台变频器的MODBUS/RTU通信,...