1. 定义一个PLC 数据类型(UDT)
配方数据块的设计需灵活包含数组结构,这些数组能够模拟菜谱中的复杂配料列表,既支持一维也支持多维数组形式,以适应不同层级和类型的配方参数。数组中的每个元素均基于PLC支持的数据类型或自定义结构体构建,确保数据在PLC系统中的有效存储与处理。我们来创建一个PLC数据类型,用来定义配方中的配料组成,我们以制造蛋糕为例,如图1所示。
图1.定义PLC 数据类型
数据模板定义了后续配方数据块中反复使用的数据类型,这些类型构成了配方成分的基础结构。在创建不同的产品配方时,我们只需输入共用的成分名称及其数据类型,通过调整这些成分的具体数值来区分各个配方。这样,一个统一的数据模板能够灵活支持多个实例配方的生成,每个配方因其成分数值的不同而。
2. 使用PLC 数据类型创建配方数据块
我们设定了一个全局性的配方数据块,名为“DB1_蛋糕配方”,并在其属性中特别指定了“仅存储在装载内存中”的选项,以确保数据处理的效率。在“DB1_蛋糕配方”中,我们定义了一个数组类型的变量,该数组的元素类型为自定义的“蛋糕配方”结构体。数组的大小被设置为0到7的限值,意味着可以存储Zui多8个不同的蛋糕配方。这一设计提供了灵活性,允许根据实际需求调整配方数量,满足多样化的生产需求。
注意,如果需要使用RecipeExport和RecipeImport导入导出,配方DB块的名称中尽量不出现中文字符,否则在WEB页面操作会略微麻烦一些,具体详见配方数据的管理。本例为显示直观,使用了“DB1_蛋糕配方”的名字。
图2.定义数据块属性
图3.创建配方数据块
3. 在工作存储器中创建活动配方DB,并通过“READ_DBL”和“WRIT_DBL”指令实现对装载存储区配方数据块的读写操作
我们准备了一个全局数据块“DB2_活动配方”,位于工作存储器中,专门用于配方数据的实时写入与读取操作。该数据块的数据类型直接设定为“蛋糕配方”,这样可以直接与我们的配方结构体相匹配,便于数据的直接交互与处理,如图4所示。
图4.添加活动配方块