通过用户程序更改参数使用用户程序按如下方式修改参数:1. 检查相关 Set变量,以确定工艺对象是否准备好进行参数更改(Set 变量 = FALSE)或更改作业是否仍在运行(Set 变量 =TRUE)。为此,工艺对象背景 DB 的静态变量中提供了 UserCmdFlags 的以下 Set 变量:–SetReferenceValue0– SetReferenceValue12.如果工艺对象已准备好进行参数更改,请修改相关静态变量。为此,可使用工艺对象背景 DB 的以下静态变量:–NewReferenceValue0 / NewReferenceValue0_M(用于 SetReferenceValue0)–NewReferenceValue1 / NewReferenceValue1_M(用于 SetReferenceValue1)3.设置相关 Set 变量以执行更改作业。4. 使用输出参数 Error 检查是否出现错误。如果未出现错误且工艺对象已自动复位 Set变量,则参数更改成功。工作模式在工艺对象的“DQ0 特性”(Behavior of DQ0) 下组态工作模式。使用SSI_Absolute_Encoder 工艺对象4.5 编程 SSI_Absolute_Encoder计数、测量和位置检测功能手册,11/2022, A5E32010507-AK 181工作模式由输出参数 CompareMeasuredValue 进行指示:状态说明FALSE 工作模式“将位置值(SSI juedui值)作为参考”:比较功能与位置值配合使用。以下静态变量专用于该工作模式:•NewReferenceValue0• NewReferenceValue1• CurReferenceValue0•CurReferenceValue1工作模式“将测量值作为参考”的这四个特定静态变量被忽略。TRUE工作模式“将测量值作为参考”:比较功能与测量值配合使用。以下静态变量专用于该工作模式:• NewReferenceValue0_M•NewReferenceValue1_M• CurReferenceValue0_M•CurReferenceValue1_M工作模式“将位置值(SSIjuedui值)作为参考”的这四个特定静态变量被忽略。确认事件可通过输入参数 EventAck的上升沿确认指示的事件。在工艺对象复位计数通道的以下事件的状态位之前,EventAck 必须保持置位状态:• CompResult0•CompResult1• ZeroStatus• PosOverflow• NegOverflow使用SSI_Absolute_Encoder 工艺对象4.5 编程 SSI_Absolute_Encoder计数、测量和位置检测182功能手册, 11/2022, A5E32010507-AK数字量输入的状态可通过静态变量 StatusDI0 和 StatusDI1获得数字量输入的状态。将数字量输出与用户程序结合使用在以下情况下,可以通过指令置位数字量输出:情况 说明对“置位输出”(Setoutput) 组态了“由户程序使用”(Use by user program) 设置。相应的数字量输出 DQM 跟随 SetDQm的值。对“置位输出”(Set output) 组态了“在 CPU发出置位命令后,达到比较值之前”(After set commandfrom CPU untilcomp. value) 设置。相应数字量输出 DQm 在 SetDQm的下降沿置位。位置值对应于比较值时或在 SetDQm 的下降沿,DQm 将复位。设置相应的静态变量ManualCtrlDQm(临时覆盖)。相应的数字量输出 DQM 跟随 SetDQm的值。对错误的响应如果调用指令期间发生错误或在工艺模块中出现错误,则会设置 Error 输出参数。可以在输出参数 ErrorID (页188) 中读取更多详细错误信息。消除错误原因并通过设置输入参数 ErrorAck确认错误消息。如果没有更多的未决错误,工艺对象将复位输出参数 Error 。在确认上一个错误之前不会再报告新错误。输入参数SSI_Absolute_Encoder参数 声明 数据类型默认值 说明CaptureEnable INPUT BOOL FALSE启用 Capture 功能启用后,会在相关数字量输入的下一个组态沿处发生Capture 事件。将在 CaptureEnable的下降沿复位输出参数 CaptureStatus。未发生 Capture 事件,也会在CaptureEnable的下降沿复位启用功能。无论 CaptureEnable 为何值,在出现下一个 Capture 事件之前,上一个值都将保留在输出参数CapturedValue中。ErrorAck INPUT BOOL FALSE SSI_Absolute_EncoderV1.0:在上升沿确认报告的错误状态。自 V2.0 起的SSI_Absolute_Encoder:由上层确认报告的错误状态。EventAck INPUT BOOL FALSE在上升沿复位以下输出参数:• CompResult0• CompResult1• ZeroStatus• PosOverflow•NegOverflow使用 SSI_Absolute_Encoder 工艺对象4.5 编程SSI_Absolute_Encoder计数、测量和位置检测184 功能手册, 11/2022,A5E32010507-AK4.5.5 输出参数 SSI_Absolute_Encoder参数 声明 数据类型 默认值说明StatusHW OUTPUT BOOL FALSE 工艺模块状态位:模块已组态并准备好运行。模块数据有效。StatusUpOUTPUT BOOL FALSE 状态位:上一个位置值在正方向上发生了更改,并且是在不超过 0.5 s的时间内完成的。StatusDown OUTPUT BOOL FALSE 状态位:上一个位置值在负方向上发生了更改,并且是在不超过0.5 s 的时间内完成的。CompResult0 OUTPUT BOOL FALSE 状态位:因所选比较条件发生DQ0(状态变化)比较事件。可使用输入参数 EventAck 的上升沿复位CompResult0 。CompResult1OUTPUT BOOL FALSE 状态位:因所选比较条件发生 DQ1(状态变化)比较事件。可使用输入参数 EventAck的上升沿复位CompResult1 。CaptureStatus OUTPUT BOOL FALSE 状态位:发生 Capture事件后,输出参数 CapturedValue将具备一个有效的 Capture 值如果已设置输入参数CaptureEnable,在相应数字量输入上出现组态的沿时设置状态位 CaptureStatus.。可在输入参数CaptureEnable 的下降沿复位CaptureStatus 。CapturedValue OUTPUT DINT 0Zui后采集的 Capture 值。无论输入参数 CaptureEnable为何值,在出现下一个 Capture事件之前,该值都会保留。如果发生了新的 Capture 事件,CaptureStatus 将置位,可在输入参数CaptureEnable 的下降沿对其进行复位。ZeroStatus OUTPUT BOOL FALSE状态位:无论计数方向为何,PositionValue 均已达到或超出值“0”。在输入参数 EventAck 的上升沿复位ZeroStatus。
参数 声明 数据类型 默认值 说明PosOverflowOUTPUT BOOL FALSE 状态位:PositionValue 在正方向上超出了编码器位置值范围的上限。在输入参数EventAck 的上升沿复位 PosOverflow。NegOverflow OUTPUT BOOL FALSE状态位:PositionValue 在负方向上低于编码器位置值范围的下限。在输入参数 EventAck 的上升沿复位NegOverflow。Error OUTPUT BOOL FALSE 发生错误。有关出错的原因,请参考输出参数ErrorID。ErrorID OUTPUT WORD 0 ErrorID (页 188) 参数显示错误消息的编号。ErrorID =0000H:没有任何错误。PositionValue OUTPUT DINT 0 当前位置值MeasuredValueOUTPUTREAL 0.0 频率、周期或速度(具体取决于组态)的当前测量值MeasuredValue 或 CompleteSSIFrame将有效,具体取决于在工艺对象的“测量值”(Measured value)下进行的参数分配。CompleteSSIFrameOUTPUT DWORD 0 Zui后接收到的完整 SSI 帧(32位Zui低有效位)MeasuredValue 或 CompleteSSIFrame将有效,具体取决于在工艺对象的“测量值”(Measured value)下进行的参数分配。CompareMeasuredValueOUTPUT BOOL FALSE 状态位:FALSE:工作模式“将位置值(SSI juedui值)作为参考”;将位置值作为参考TRUE:工作模式“将测量值作为参考”;将测量值作为参考静态变量 SSI_Absolute_Encoder变量 数据类型 默认值 访问说明NewReferenceValue0 DINT L#0 写入 工作模式“将位置值(SSI juedui值)作为参考”中的新比较值0NewReferenceValue1 DINT L#10 写入 工作模式“将位置值(SSI juedui值)作为参考”中的新比较值1NewReferenceValue0_M REAL L#0.0 写入 工作模式“将测量值作为参考”中的新比较值0NewReferenceValue1_M REAL L#10.0 写入 工作模式“将测量值作为参考”中的新比较值1CurReferenceValue0 DINT L#0 读取 工作模式“将位置值(SSI juedui值)作为参考”中的当前比较值0CurReferenceValue1 DINT L#10 读取 工作模式“将位置值(SSI juedui值)作为参考”中的当前比较值1CurReferenceValue0_M REAL L#0.0 读取 工作模式“将测量值作为参考”中的当前比较值0CurReferenceValue1_M REAL L#10.0 读取 工作模式“将测量值作为参考”中的当前比较值1AdditionalErrorID DWORD W#16#0000 读取 内部指令(如RDREC)的错误信息UserCmdFlags STRUCT -SetReferenceValue0 BOOL FALSE 写入设置比较值 0SetReferenceValue1 BOOL FALSE 写入 设置比较值 1SetDQ0 BOOL FALSE 写入设置数字量输出 DQ0SetDQ1 BOOL FALSE 写入 设置数字量输出 DQ1ManualCtrlDQ0 BOOL FALSE写入 启用数字量输出 DQ0 的设置。TRUE:SetDQ0 置位 DQ01FALSE:设置未启用ManualCtrlDQ1 BOOLFALSE 写入 启用数字量输出 DQ1 的设置:TRUE:SetDQ1 置位 DQ11FALSE:设置未启用变量 数据类型 默认值访问 说明UserStatusFlags STRUCT -StatusDI0 BOOL FALSE 读取 数字量输入 DI0的当前状态StatusDI1 BOOL FALSE 读取 数字量输入 DI1 的当前状态StatusDQ0 BOOL FALSE 读取数字量输出 DQ0 的当前状态StatusDQ1 BOOL FALSE 读取 数字量输出 DQ1 的当前状态1相应指令会在模块的控制接口中将 TM_CTRL_DQm 位置为 FALSE.静态变量 SetDQm 作用于 SET_DQm控制位。