全国服务热线 15801815554

SIEMENS西门子 S120 伺服电机 1FK7022-5AK71-1LH3

更新时间:2024-07-02 08:00:00
价格:请来电询价
西门子:代理商
S120:全新原装 假一罚十
德国:现货 实体经营
联系电话:15801815554
联系手机:15801815554
联系人:邓经理
让卖家联系我
详细介绍


              Get_Alarm 和 Ack_Alarms 的编程示例 - 第 2 部分 (S7-1200, S7-1500) 简介 在 Get_Alarm 和 Ack_Alarms 编程示例的第 2 部分中,可快速了解组态和 ProDiag 报警的结 果。 有关参数的要求与互连信息,请参见“Get_Alarm 和 Ack_Alarms 的编程示例 - 第 1 部分 (页 3159)”。 建立 CPU 1 与 CPU 2 间连接的操作步骤 请遵循相关操作步骤的顺序: 1. 对于 CPU 2,将变量“TRCV_C.start”更改为“TRUE”。 2. 对于 CPU 2,将变量“TRCV_C.comControl”更改为“TRUE”。 3. 对于 CPU 1,将变量“TSEND_C.start”更改为“TRUE”。 4. 对于 CPU 1,将变量“TSEND_C.comControl”更改为“TRUE”。CPU 1:函数块“SLI_FBCall_GetAlarm_AckA” - 参数互连 创建函数块“SLI_FBCall_GetAlarm_AckA”,可执行以下操作: • 调用和修改 Get_Alarm • 调用进行复制和发送的块。 • 调用 Ack_Alarms。 在该函数块中创建以下局部变量。CPU 2:函数块“SLI_FB_rcvdAlarms_GAA” - 参数互连 创建函数块“SLI_FB_rcvdAlarms_GAA”,将报警复制到存储器数组“GetAlarm.rcvdStorage” 中。设置和互连过程,与函数块“SLI_FB_saveAlarms_GAA”的类似。 有关函数块“SLI_FB_rcvdAlarms_GAA”设置与互连的更多信息,请参见“指令的示例库 (页 713)”中的程序代码示例。 CPU 2:函数块“SLI_FBCall_trcv_GAA” - 参数互连 创建函数块“SLI_FBCall_trcv_GAA”,调用并执行 TRCV_C 以及所有后续流程。 在该函数块中创建以下局部变量。断开 CPU 1 和 CPU 2 间连接的操作步骤 请遵循相关操作步骤的顺序: 1. 对于 CPU 1,将变量“TSEND_C.stop”更改为“TRUE”。 2. 对于 CPU 2,将变量“TRCV_C.start”更改为“FALSE”。 3. 对于 CPU 2,将变量“TRCV_C.comControl”更改为“FALSE”。 4. 对于 CPU 1,将变量“TSEND_C.start”更改为“FALSE”;将变量“TSEND_C.stop”更改为“FALSE”。 5. 对于 CPU 1,将变量“TSEND_C.comControl”更改为“FALSE”。 CPU 1 的结果:函数块“SLI_FBCall_GetAlarm_AckA” - 程序段 1 如果常开触点(“TSEND_C.start”)的信号状态为“TRUE”,则启动“TSEND_C”指令。输入参数 CONNECT(“TSEND_C.comControl”)返回信号状态“TRUE”时,“TSEND_C”指令将在 CPU 1 与 CPU 2 间创建一个通信连接。 数据记录 (#sendStruct) 传输成功时,输出参数 DONE(“TSEND_C.done”)中信号状态 “TRUE”(“TSEND_C.status”的值为“0000”)。数据记录 (#sendStruct) 传输到 CPU 2 之后,系 统将继续监视该通信连接(状态为“7004”)。 如果常开触点(“TSEND_C.stop”)的信号状态为“TRUE”,则停止“TSEND_C”指令。

             CPU 1 的结果:函数块“SLI_FBCall_GetAlarm_AckA” - 程序段 2 如果常开触点(“GetAlarm.start”)的信号状态为“TRUE”,则启动“Get_Alarm”指令。为此, 指令“Get_Alarm”将在模式 1(“GetAlarm.operateMode.value”)中调用,然后切换为模式 2。执行成功后,变量“GetAlarm.start”将自动复位为“FALSE”。 如果常开触点(“GetAlarm.stop”)的信号状态为“TRUE”,则停止“Get_Alarm”指令。为此,指 令“Get_Alarm”将在模式 3(“GetAlarm.operateMode.value”)中调用,然后切换为不活动状 态(模式 0)。停止指令的执行要求成功登录 Get_Alarm (“GetAlarm.operateMode.Logon_done”为“TRUE”)。执行成功后,变量“GetAlarm.stop”将 自动复位为“FALSE”。 说明 模式 0 当参数 OPERATEMODE(“GetAlarm.operateMode.value”)使用值“0”时,指令“Get_Alarm” 会输出参数分配错误作为状态。原因:指令“Get_Alarm”无法识别模式 0。不过,本例中必须 使用参数 OPERATEMODE 的值“0”来保持指令“Get_Alarm”处于完全不活动状态。否则指令 “Get_Alarm”将会始终传递一种模式(登录或注销)。系统将记录 Get_Alarm 所执行模式的成功状态: • “GetAlarm.operateMode.Logon_done”为“TRUE”,表示模式 1 已成功完成。 • “GetAlarm.operateMode.ReadData_ready”为“TRUE”,表示模式 2 已置位。Get_Alarm 已 就绪可以读取。• “GetAlarm.operateMode.ReadData_active”为“TRUE”,表示 Get_Alarm 处于模式 2,正忙 于读取数据。 • “GetAlarm.operateMode.Logoff_done”为“TRUE”,表示模式 3 已成功完成。 说明 Get_Alarm 意外注销 在模式 2 中注销 Get_Alarm 时,输出参数 INIT(“GetAlarm.initiateLogin”)将返回信号状态 “TRUE”。此事件将在函数“SLI_FC_switchMode_GAA”中计数为读取丢失 (“GetAlarm.currReadLoss”),同时将“SLI_FC_switchMode_GAA”的 (INOUT) 参数 MODE2REINIT(“GetAlarm.check.anew”)设置为“TRUE”。这将导致变量 “GetAlarm.dataReady”和“GetAlarm.initiateLogin”复位,且指令“Get_Alarm”在模式 1 自动重 新启动。之后,Get_Alarm 将在模式 2 中再次就绪。 CPU 1 的结果:函数块“SLI_FBCall_GetAlarm_AckA” - 程序段 3 当输入参数 OPERATEMODE(“GetAlarm.operateMode.value”)显示值“2”时,“Get_Alarm” 指令会读取 CPU 1 的所有报警。为此,将在输入参数 DATA(“GetAlarm.currRecord”)中记 录相应的报警。输出参数 DATAREADY(“#dataReady”)处的信号状态“TRUE”将指示一个新报警。由于 “#dataReady”的值(以及“#initiate”的值)仅置位一个周期,该状态将保存到 “GetAlarm.dataReady”变量中。 当输出参数 INIT(“#initiate”)在模式 2 下返回信号状态“TRUE”时,Get_Alarm 将注销,需重 新登录。请参见有关程序段 2 的注意事项。在模式 1 中,“#initiate”/“GetAlarm.initiateLogin” 显示登录成功。 如果发生错误,则 Get_Alarm 的状态(“GetAlarm.status”)将保存到变量 “GetAlarm.memErrStatus”和“GetAlarm.memErr”中,同时 Get_Alarm 设置为模式 3 进行注 销。注销 Get_Alarm 时且无错误发生(“GetAlarm.status”的值为“16#0000”),则将以 “GetAlarm.operateMode.Logoff_done”的值为“TRUE”保存注销。 输入参数 DATAMODE(“GetAlarm.outputMode”)的值为“16#03”,表示报警读取完整(包 含所有信息)。输入参数 DISPCLASSNR 未连接。这会导致 Get_Alarm 读出所有显示类别。 输入参数 LCID(“GetAlarm.languageCodeID”)的值为“0”,表示将读取报警的所有语言版本。 CPU 1 的结果:函数块“SLI_FBCall_GetAlarm_AckA” - 程序段 4 在以下条件下,当前读取的报警(“GetAlarm.currRecord”)以及至此的读取读取丢失计数 (“GetAlarm.currReadLoss”)将作为组合数据记录,保存在存储器数组 “GetAlarm.alarmStorage”中: • “GetAlarm.dataReady”将返回信号状态“TRUE”。即,Get_Alarm 已读取一个新报警。 • 而且,读取报警的数据记录(“GetAlarm.currRecord”)不为空。此时,可检查其报警文 本。之后,所用的位置(“#posForAlarm”)将保存在全局变量“GetAlarm.posForAlarm”的存储器 数组“GetAlarm.alarmStorage”中。并对报警进行计数,将当前值记录在全局变量 “GetAlarm.countAlarms”中。 位置信息(“#posForAlarm”)将逐渐递增。因此,新报警将存储在存储器数组的不同单元中。 进行递增时,要求不得超出存储器数组的限值(“GetAlarm.maxPositon”)。超出限值时,将 记录该事件(“GetAlarm.limitReach”)并将位置信息(“#posForAlarm”)设置为值“0”。因此, 使用该设置时,所有的后续报警将覆盖存储器数组中的旧报警条目。 成功的复制记录在变量“GetAlarm.savingDone”中。“GetAlarm.initiateSending”变量将设置为 启动报警的后续发送。 “SLI_FB_saveAlarms_GAA”的执行结束时,变量“GetAlarm.dataReady”(和局部变量)将复位 为“FALSE”。仅当“GetAlarm.dataReady”返回值“TRUE”时,才会再次执行 “SLI_FB_saveAlarms_GAA”的程序。

联系方式

  • 地址:上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213室
  • 邮编:201100
  • 电话:15801815554
  • 联系人:邓经理
  • 手机:15801815554
  • 微信:15801815554
  • QQ:190755061