SIEMENS西门子 中国包头市智能化工控设备代理商
SSI_Absolute_Encoder 说明说明SSI_Absolute_Encoder 指令用于通过用户程序控制工艺模块 TM PosInput 的定位输入和测量功能。调用必须以循环方式或在时间控制的程序中,对每个通道调用一次该指令。不允许在事件控制的中断程序中调用。工作原理位置值:位置值在输出参数 PositionValue 中提供。每次调用此指令时都会更新位置值。测量值:工艺模块基于组态的更新时间将测量值异步更新到指令调用。每次调用该指令,都会在输出参数 MeasuredValue 中更新工艺模块Zui后确定的测量值。测量值和位置值作为输出参数并行提供。将在输出参数 CompleteSSIFrame 中返回完整 SSI 帧,而非测量值。MeasuredValue 或CompleteSSIFrame 将有效,具体取决于参数分配。Capture:输出参数 CaptureStatus = TRUE 表示在输出参数 CapturedValue 中存在有效的Capture 值。• 在以下条件下捕获 Capture 值:– 数字量输入具有参数分配“Capture”– CaptureEnable = TRUE– 具有 Capture 功能的数字量输入沿• 输出参数 CaptureStatus 在输入参数 CaptureEnable 的下降沿复位。使用 SSI_Absolute_Encoder 工艺对象4.5 编程 SSI_Absolute_Encoder计数、测量和位置检测180 功能手册, 11/2022, A5E32010507-AK通过用户程序更改参数使用用户程序按如下方式修改参数: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) 下组态工作模式。比较值 1操作模式“将位置值(SSI juedui值)用作参考”通过比较值 (页 57)的参数分配,可以指定数字量输出 DQ1 因所选比较事件而切换的位置值。如果使用位置值长度Zui大为 31 位的 SSI juedui值编码器,则必须输入一个正整数 (DINT),值范围在 0 和 2(MSB-LSB+1)-1 之间。如果使用位置值长度为 32 位的 SSI juedui值编码器,则必须输入一个值范围在 –2147483648 到 2147483647 间的带符号的整数 (DINT)。如果使用 DQ“在比较值 0 和比较值 1 之间”功能,则比较值 0 必须小于比较值 1。默认设置为“10”。操作模式“将测量值用作参考”通过比较值 (页 61)的参数分配,可以指定数字量输出 DQ1 因所选比较事件而切换的测量值。必须输入一个浮点数 (REAL)。如果使用 DQ“在比较值 0 和比较值 1 之间”功能,则比较值 0 必须小于比较值 1。Zui大值为 7.922816 x 1028。默认设置为“10.0”。比较值的单位取决于测量变量。计数方向使用此参数指定所选功能有效时的位置值变化方向。可以选择下列选项:位置值变化方向 含义在两个方向上(默认)无论位置值增加还是降低,都执行相应数字量输出的比较和切换。向上 只有位置值增加时,才会执行相应数字量输出的比较和切换。向下 只有位置值降低时,才会执行相应数字量输出的比较和切换。可为以下功能组态参数:• 在比较值持续一个脉宽时间• 在 CPU 发出置位命令后,达到比较值之前使用 SSI_Absolute_Encoder 工艺对象4.4 组态 SSI_Absolute_Encoder计数、测量和位置检测功能手册, 11/2022, A5E32010507-AK 171脉冲持续时间通过组态“在比较值持续一个脉宽时间”功能的脉冲宽度,可以指定相应数字量输出处于激活状态的毫秒数。允许介于 0.1 到 6553.5 ms 之间的值。默认设置为“500.0”,相当于 0.5 s 的脉冲持续时间。滞后(采用增量的形式)通过组态滞后 (页 73),可以定义比较值前后的范围。对于函数“介于比较值和计数器上限之间”与“介于比较值和计数器下限之间”,还需要将该滞后值应用到计数器限值处。在滞后范围内,数字量输出无法重新切换,直到位置值离开该范围一次为止。选择一个足够小的滞后值。如果滞后范围的起始值为所组态的比较值且超出整个位置值范围,则无法确保比较值的正常运行。如果比较值非常接近计数器的限值,以至于滞后范围超出该计数器的限值,则滞后范围将以该值结束。如果输入“0”,则禁用滞后。可输入一个介于 0 和 255 之间的值。默认设置为“0”。说明在“DQ0 特性”(Behavior of DQ0) 下一并组态两个数字量输出的滞后。该滞后还显示在“DQ1 特性”(Behavior of DQ1) 下。说明滞后只适用于操作模式“将位置值(SSI juedui值)用作参考”。使用 SSI_Absolute_Encoder 工艺对象4.4 组态 SSI_Absolute_Encoder计数、测量和位置检测172 功能手册, 11/2022, A5E32010507-AK4.4.6 指定测量值 (SSI_Absolute_Encoder)测量变量该参数指定了工艺模块是提供一个确定的测量变量 (页 68)还是完整的 SSI 帧。可以选择下列选项:选项 含义 其它选项特定的参数频率(默认)测量变量显示了每秒的增量数,其中的每次增量均对应于一次位置值变化。该值为浮点数 (REAL)。单位为 Hz。工艺对象在输出参数 MeasuredValue 中显示测量值。• 更新时间周期 测量变量即为位置值的两个增量间的平均周期。该值为整数 (DINT)。单位为 s。工艺对象在输出参数 MeasuredValue 中显示测量值。• 更新时间速度 测量变量是速度值。有关速度测量示例,请参见“每单位增量数”(Incrementsper unit) 参数的说明。工艺对象在输出参数 MeasuredValue 中显示测量值。• 更新时间• 速度测量的时间基数• 每单位增量数完整 SSI 帧 将返回 SSI 帧的前 32 位(位 0 到位 31),而不是测量变量。在这种情况下,还将提供不属于位置信息的特殊位。还会忽略已组态的方向反转。工艺对象在输出参数 CompleteSSIFrame 中显示相关值。相关示例,请参见帧格式的示例 (页 174)。此选项仅在工作模式“将位置值(SSI juedui值)作为参考”下可用。—说明如果测量值计算需要每转增量,则通过参数化的报文长度作为 2 的幂次方自动计算得出,例如每转 8192 个增量的报文长度为 13 位。如果使用 SSI juedui编码器,其每转增量不对应于 2 的幂次方,则计算的测量值可能会暂时不正确。使用 SSI_Absolute_Encoder 工艺对象4.4 组态 SSI_Absolute_Encoder计数、测量和位置检测功能手册, 11/2022, A5E32010507-AK 173更新时间以毫秒组态更新时间 (页 68),可指定两次测量值更新间的时间间隔。通过较长的更新时间可平滑不稳定的测量变量。如果输入“0”,则测量值可在每个模块内部周期更新一次。Zui多可输入三个小数位。允许介于 0.0 到 25000.0 之间的值。默认设置为“10.0”。速度测量的时间基数该参数定义速度将返回的时间基数。可以选择下列选项:• 1 ms• 10 ms• 100 ms• 1 s• 60 s默认设置为“60 s”。每单位增量数该参数定义了每个相关单位的增量数(由 SSI juedui编码器提供,用于速度测量)。可输入一个介于 1 和 65535 之间的值。示例 1:juedui编码器以每转 12 位的分辨率工作并且每转执行的增量数为 4096 。应以每分钟转数为单位测量速度。这种情况下,需指定以下参数:• 每单位增量数:4096• 速度测量的时基:60 s示例 2:行程 1 米,编码器相应地传送 10000 个增量。应以每秒米数为单位测量速度。这种情况下,需指定以下参数:• 每单位增量数:10000• 速度测量的时基:1 s使用 SSI_Absolute_Encoder 工艺对象4.4 组态 SSI_Absolute_Encoder计数、测量和位置检测174 功能手册, 11/2022, A5E32010507-AK4.4.7 帧格式的示例示例 1此示例中 SSI juedui编码器的设定如下:• 编码器的分辨率为 13 位/转,数值范围为 12 位/转。SSI 帧的长度为 25 位。• 位置值的 MSB 为位 24。• 位置值的 LSB 为位 0。• 该位置值为 Gray 编码。• 无奇偶校验位。该帧具有以下格式:MG Gray 代码形式的 Multiturn 位SG Gray 代码形式的 Singleturn 位完整 SSI 帧如果组态“完整 SSI 帧”(Complete SSI frame),则工艺模块会在返回接口以右对齐方式返回未处理的 SSI 帧:MG Gray 代码形式的 Multiturn 位SG Gray 代码形式的 Singleturn 位使用 SSI_Absolute_Encoder 工艺对象4.4 组态 SSI_Absolute_Encoder计数、测量和位置检测功能手册, 11/2022, A5E32010507-AK 175位置值反馈值Gray 代码形式的位置值由工艺模块转换为二进制代码,并在反馈接口中以右对齐的方式返回:MD 二进制代码形式的 Multiturn 位SD 二进制代码形式的 Singleturn 位示例 2此示例中 SSI juedui编码器的设定如下:• 编码器的分辨率为 17 位/转,数值范围为 11 位/转。SSI 帧的长度为 34 位。• 位置值的 MSB 为位 33。• 位置值的 LSB 为位 6。• 该位置值为 Gray 编码。• SSI 帧有六个特殊位。• 有一个奇偶校验位。但不计算在帧长度中。该帧具有以下格式:MG Gray 代码形式的 Multiturn 位SG Gray 代码形式的 Singleturn 位Sn 特殊位 nP 奇偶校验位使用 SSI_Absolute_Encoder 工艺对象4.4 组态 SSI_Absolute_Encoder计数、测量和位置检测176 功能手册, 11/2022, A5E32010507-AK完整 SSI 帧如果组态“完整 SSI 帧”(Complete SSI frame),则工艺模块会将 SSI 帧的 32 位Zui低有效位作为未处理位字符串返回。工艺模块会将 LSB 后的位返回为奇偶校验位。因此在此示例中,工艺模块只会返回 SSI 帧的 31 位Zui低有效位 。可使用完整的 SSI 帧,评估应用中的其它特殊位。返回的位字符串结构如下:MG Gray 代码形式的 Multiturn 位SG Gray 代码形式的 Singleturn 位Sn 特殊位 nP 奇偶校验位位置值Gray 代码形式的位置值由工艺模块转换为二进制代码,并在反馈接口中以右对齐的方式返回:这种情况下会忽略特殊位。奇偶校验位会被评估,但不会随位置值返回:MD 二进制代码形式的 Multiturn 位SD 二进制代码形式的 Singleturn 位使用 SSI_Absolute_Encoder 工艺对象4.5 编程 SSI_Absolute_Encoder计数、测量和位置检测功能手册, 11/2022, A5E32010507-AK 1774.5 编程 SSI_Absolute_Encoder4.5.1 指令 SSI_Absolute_EncoderSSI_Absolute_EncoderSSI_Absolute_Encoder 指令属于 SSI_Absolute_Encoder 工艺对象的一部分。该指令提供TM PosInput 工艺模块的控制和反馈接口。因此,SSI_Absolute_Encoder 指令形成了用户程序与工艺模块之间的软件接口。为同步输入和输出数据,该指令必须从用户程序中循环调用。SSI_Absolute_Encoder 指令可用于 S7-1500 和 ET 200SP 这两个系统的 TM PosInput。可集中和分散使用 TM PosInput 模块。在每种情况下该指令都适用于已分配给相关工艺对象的工艺模块的通道。更多信息SSI_Absolute_Encoder 说明 (页 179)输入参数 SSI_Absolute_Encoder (页 183)输出参数 SSI_Absolute_Encoder (页 184)参数的错误代码 ErrorID (页 188)静态变量 SSI_Absolute_Encoder (页 186)使用 SSI_Absolute_Encoder 工艺对象4.5 编程 SSI_Absolute_Encoder计数、测量和位置检测178 功能手册, 11/2022, A5E32010507-AK4.5.2 在用户程序中调用指令必须以循环方式或在时间控制的程序中,对每个通道调用一次 SSI_Absolute_Encoder 指令。不允许在事件控制的中断程序中调用。操作步骤要在用户程序中调用指令,请按以下步骤操作:1. 在项目树中打开 CPU 文件夹。2. 打开“程序块”(Program blocks) 文件夹。3. 双击用于循环程序执行的 OB。该块将在工作区中打开。4. 在“指令”(Instructions) 窗口中,打开“工艺”(Technology) 组和“计数和测量”(Countingand measurement) 文件夹。文件夹中包含此指令。5. 选择指令,并将其拖动到 OB 中。“调用选项”(Call options) 对话框随之打开。6. 从“名称”(Name) 列表中选择工艺对象或输入新工艺对象的名称。7. 单击“确定”(OK) 进行确认。结果如果工艺对象尚不存在,则会添加工艺对象。该指令已添加到 OB 中。已将工艺对象分配给该指令的此调用。说明如果单击指令用户界面中的“组态”(Configuration)、“调试”(Commissioning) 或“诊断”(Diagnostics) 按钮之一,则会打开相应的编辑器。