SIEMENS西门子 S120伺服电机1FK7022-5AK71-1LH5
- 供应商
- 浔之漫智控技术(上海)有限公司
- 认证
- 西门子
- 代理商
- S120
- 全新原装 假一罚十
- 德国
- 正品现货 实体经营
- 联系电话
- 15801815554
- 手机号
- 15801815554
- 联系人
- 邓经理
- 所在地
- 上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213室
- 更新时间
- 2024-11-28 08:00
使用数据日志的示例程序 (s7-1200, s7-1500) 简介在以下示例程序中,创建一个数据日志,将一条或多条记录写入该数据日志,关闭和打开该数据日志,并基于该数据日志创建新文件。在该示例中,还可以删除数据日志。该示例中还可以编辑zui多八个数据日志。有关各个指令的详细信息,请使用相应的链接打开相应的帮助说明。 使用数据记录的一般注意事项 •执行“datalogcreate”和“datalognew”指令时,将自动打开所创建的数据记录。 • cpu 从 run 切换至stop,或者 cpu 重新启动后,将自动关闭数据记录。 • 要执行“datalogwrite”指令,必须打开数据记录。 • 对于s7-1200 cpu,zui多可同时打开八个数据记录。对于 s7-1500 cpu,zui多可同时打 开十个数据记录。 要求 在 cpu属性中进行以下设置: • 在“profinet 接口 > 访问 web 服务器”(profinet interface >access to the web server) 中,激活 web 服务器访问。 • 在“web 服务器”(web server)条目中,启用该模块的 web 服务器。 • 在“用户管理”(user administration)部分,创建一个具有文件读写和删除权限的新用户。 数据的存储 调用和编辑某个数据日志时,需要该数据日志的名称和id。为数据日志条目创建存储器,以 防这些数据丢失。可通过 plc 数据类型“stackdatalog”定义数据日志条目的结构。创建以下变量,在全局数据块 (sli_gdb_datalogging) 中进行数据存储。这其中还有用于数据日志条目的存储器和用于控制存储器的变量。 注:如果还想要从 cpu 的装载存储器中物理删除数据日志,请使用值为“true”的“dldelete.deletemode”变量。
数据块(“sli_gdb_datalogging”)用于创建 (datalogcreate(页 3303)) 或删除 (datalogdelete (页 3323)) 一个数据日志。将“mydata”结构的 3个条目用作过程值:count、 temerature 和pressure。在数据块中,暂时存储这三个值,然后使用“datalogwrite(页 3318)”指令将其作为数据记录传送到数据记录。 数据记录在以下条目之后组成: • 数据记录号(自动分配) •日期(当对 datalogcreate 使用“1”时在 timestamp 参数中自动分配)。 • 时间(当对datalogcreate 使用“1”时在 timestamp 参数中自动分配)。 • 结构“mydata”中“count”的当前值。• 结构“mydata”中“temperature”的当前值。 • 结构“mydata”中“pressure”的当前值。使用全局数据块“sli_gdb_datalogw”,为写入数据记录(datalogwrite: (页 3318))提供 过程值。程序段1:通过输入参数“#name”和“#logid”来传输变量“name”和“ logid”的值。 程序段2:“nextposinstack”变量指定了“datalogentries”数组中要用于数据日志条目的存储位置。“maxposentry”变量指定了“datalogentries”数组中zui后一个单元格。按如下步骤将变量“nextposinstack”与“maxposentry”的值互连,用于进一步处理。 程序段 3:按以下方式将名称和 id存储在“datalogentries”数组中。 程序段 4:为确保将新的数据日志存储在存储器的不同条目中,请递增变量“nextposinstack”。注:当达到存储限制(“#maxposentry”)时,“nextposinstack”变量不再递增,而是复位为值“0”。这表示新数据日志的数据会覆盖旧数据日志中的数据。函数“sli_fc_callentry_datalog”:参数互连要调用选定数据日志条目的名称和 id,请创建函数“sli_fc_callentry_datalog”。在该函数中创建以下局部变量。通过“callentry”变量指定选择的数据日志条目。 程序段1:按如下步骤将变量“callentry”的值互连,用于进一步处理。函数“sli_fc_deleteentry_datalog”:参数互连要删除数据日志条目中的数据,请使用函数“sli_fc_deleteentry_datalog”。在该函数中创 建以下局部变量。程序段2:如果变量“callentry”的值不大于变量“maxposentry”的值,则会发生以下情况: •变量“callentry”的值将传输到输入参数 #deleteentry。通过变量“callentry”选择要删除的数 据日志条目。• 将会复位选定数据日志条目的变量“datalogentries.name”、“datalogentries.id”和“datalogentries.dlclosed”。 这些互连呈现如下形式。程序段 1:在指令 datalogcreate (页3303) 的输入参数 req(“dlcreate.execute”)的上升 沿处,启动数据日志的创建。 datalogcreate的输出参数 done(“#createdone”)只适用于一个循环。因此,需将其值保存在变量“dlcreate.dlogcreated”中。该过程会将变量“dlcreate.execute”复位。如果发生错误,则将状态(“dlcreate.status”)保存在“dlcreate.memerrstatus”变量中。程序段2:通过使用函数“sli_fc_saveentry_datalog”保存数据日志的名称和 id。如果参数done(“#createdone”)的信号状态为“true”,则执行存储操作。 程序段3:在上升沿处,将触发将新过程值存储在“mydata” 结构中。这一步用于临时在数据块“sli_gdb_datalogging”中存储所需的过程值。此外,还可使用函数“sli_fc_callentry_datalog”调用所需的数据日志。通过“callentry”变量,可根据“datalogentries”数组中的数据日志条目选择数据日志。程序段4:如果已创建一个数据日志,并且变量“logid”的值不为“0”,则置位 datalogwrite (页 3318) 的输入en。执行查询是因为生成过程跨越了多个循环,且必须在完成后才能执行 写操作。在输入参数req(“dlwrite.execute”)的上升沿处,将触发写入数据记录。 datalogwrite的成功状态(“#writedone”为“true”)通过“dlwrite.memdone”变量进行存储。该过程会将变量“dlwrite.execute”复位。如果发生错误,则将状态(“dlwrite.status”)保存在“dlwrite.memerrstatus”变量中。如果状态为“16#0001”,指令“datalogwrite”会自动启动数据日志的关闭(“dlclose.execute”为“true”)。数据日志中的数据记录数目 数据日志设计为包含 5 条数据记录(请参见“程序段 1”)。 这意味着: • 在 5条数据记录之后,使用指令 datalogwrite (页 3318),将值“0001”输出到参数 status(“dlwrite.status”)中。 • 在文件末尾,创建zui后一个可能的数据记录。如果创建了其它数据记录,则覆盖较早的数据 记录。程序段 5:在关闭数据日志之前,请(通过“callentry”)选择要关闭的数据日志。当常开触点(“dlclose.execute”)的信号状态为“true”时,根据“datalogentries”数组中的条目来调用所需的数据日志。此外,将“#executeclose”设置为“true”。为此,请创建以下互连。程序段6:写入zui后一个数据记录或者处理完数据日志之后关闭数据日志。 为此,将执行 datalogclose (页 3321) 指令的req(“#executeclose”)输入置位。数据日志 关闭后,无法再写入数据记录。 datalogclose的成功状态(“#closedone”为“true”)通过“dlclose.memdone”变量进行存 储。程序段 10:必须使用datalogopen (页 3313) 指令再次打开数据日志以便稍后再写入数据 记录。此后,如果使用datalogwrite (页 3318) 写入其它数据记录,则始终覆盖zui早的数据 记录。 datalogopen的成功状态(“#opendone”为“true”)通过“dlopen.memdone”变量进行存储。“#opendone”的否定结果通过“#memopendone”变量进行保存。程序段13:要在数据日志的基础上创建一个新文件,首先必须(通过“callentry”)选择要使用的数据日志。当常开触点(“dlnewfile.execute”)的信号状态为“true”时,根据“datalogentries”数组中的条目来调用所需的数据日志。为此,请创建以下互连。程序段14:如果不想覆盖较早的数据记录,可以使用“datalognewfile (页 3327)”指令创建具有相同结构的新数据记录。为此,要在指令的 id 参数中输入您要复制其结构的现有数 据记录的id。在“datalognewfile”指令执行完毕后,将为新数据记录分配唯一新 id 值。 在输入参数req(“#statemem5”)的上升沿时,将触发创建过程。datalognewfile 的成功状态(“#newfiledone”为“true”)通过“dlnewfile.memdone”变量进行存储。如果发生错误,则将状态(“#newfilestatus”)保存在“dlnewfile.memerrstatus”变量中。