Polyline 的输出参数(S7-1200, S7-1500) 参数 数据类型 默认值 说明 Output REAL 0.0 输出值 Error BOOLFALSE Error 设为 TRUE 时,至少有一个错误当前处于未决状态。 ErrorBits DWORD DW#16#0ErrorBits 参数(页 5314)显示了处于未决状态的错误消息。ErrorBits 具 有保持性,通过 Reset 或ErrorAck 的上升沿复位。 Polyline 的静态变量 (S7-1200, S7-1500) 变量 数据类型 默认值 说明UserData AuxFct_PointT able - 折线数据的输入区域 UserData 结构中的折线数据可以编辑。该结构中的更改并不会影响插值计算,直到 数据被检查并复制到 WorkingData 结构。UserData.NumberOfUsedPoint s INT 0 用于插值计算的点数 允许的值范围:2 到 50UserData.Point Array[1..50] of AuxFct_Point - 用于插值计算的点 50元素的数组,数据类型为 AuxFct_Point ,包含点的值对。 UserData.Point[i] AuxFct_Point -用于插值计算的点 “Point”数组中索引为“i”的元素。 UserData.Point[i].x REAL 0.0 点的 x值
参数 数据类型 默认值 说明ErrorAck BOOL FALSE 删除错误消息 • 边沿 FALSE -> TRUE ErrorBits 复位 ResetBOOL FALSE 重新启动指令 • 边沿 FALSE -> TRUE ErrorBits 复位。 • 只要Reset 设为 TRUE,就会在输出中输出替代输出值 SubstituteOutput。 • 只要 Reset 设为FALSE,就会执行插值计算。变量 数据类型 默认值 说明 UserData.Point[i].y REAL 0.0 点的 y 值WorkingData AuxFct_PointT able - 当前有效的折线数据的显示区域 WorkingData结构中的折线数据不可编辑。 它用于插值计算。 WorkingData.NumberOfUsedP oints INT 0用于插值计算的点数 允许的值范围:2 到 50 WorkingData.Point Array[1..50] ofAuxFct_Point - 用于插值计算的点 50 元素的数组,数据类型为 AuxFct_Point,包含点的值对。WorkingData.Point[i] AuxFct_Point - 用于插值计算的点 “Point”数组中索引为“i”的元素。WorkingData.Point[i].x REAL 0.0 点的 x 值 允许的值范围:Point[i].x <Point[i+1].x WorkingData.Point[i].y REAL 0.0 点的 y 值 ErrorMode INT 0选择出现错误后的替代输出值 • 0 = Input • 1 = SubstituteOutput • 2 = 上一个有效输出值允许的值范围:0 到 2: OutOfRangeMode INT 0 选择输入值超出定义的 x 值范围时的输出值 • 0 = 保持斜率• 1 = 第一个点/Zui后一个点的 y 值 允许的值范围:0 到 1 NextXIndex INT 2 下一个 x 值的索引用于监视当前插值计算正在使用的断点的索 引。 需要符合以下条件: WorkingData.Point[NextXIndex-1].x< Input ≤ WorkingData.Point[NextXIndex].x 请勿手动更改该值。ErrorBits 参数(S7-1200, S7-1500) 如果多个错误处于待决状态,将通过二进制加法显示 ErrorBits 的值。例如,显示ErrorBits = 16#0000_0003 表示错误 16#0000_0001 和 16#0000_0002 处于待决状态。对于 Polyline,在 ErrorBits 参数中输出的错误分为两类: • 错误消息为 ErrorBits <16#0001_0000 的错误 • 错误消息为 ErrorBits ≥ 16#0001_0000 的错误 错误消息为ErrorBits < 16#0001_0000 的错误 如果有一个或多个错误消息为 ErrorBits <16#0001_0000 的错误处于未决状态,则 Polyline 的响应如下: • 存在此类错误,输出值也会通过如下方式确定:– 当 Reset = FALSE 时,通过插值计算 – 当 Reset = TRUE时,通过 SubstituteOutput 的输出 • 输出参数 Error 已置位。 • 使能输出 ENO不变。错误原因和对错误的响应: Output 参数限制为 -3.402823e+38 或 +3.402823e+38。 解决方案:如果在输出中输出插值(Reset = FALSE 且 ErrorBits < 16#0001_0000),则检查插值计算中使用的以下变量: • Input • WorkingData.Point[i].x • WorkingData.Point[i].y当 ErrorBits ≥ 16#0001_0000 且 Reset = FALSE时,替代输出值限制为其输出。在这种情况 下,根据 ErrorMode 变量的设定值检查以下参数: • Input •SubstituteOutput Reset = TRUE 时,检查 SubstituteOutput参数。错误原因: 检查折线数据时,UserData 结构中有一个或多个变量的值无效(Validate = TRUE 和Reset = FALSE)。 对错误的响应: UserData 结构中的折线数据并不传送至WorkingData 结构,从而使 UserData 结构中所做的 更改不会生效。 Polyline FB 继续使用WorkingData 结构中未更改的有效折线数据进行插值计算。 解决方案: 当 Validate 参数设为 TRUE时,确保满足以下条件: • 2 ≤ UserData.NumberOfUsedPoints ≤ 50 •UserData.Point[j].x < UserData.Point[j+1].x,索引 j =1..(UserData.NumberOfUsedPoints - 1) • -3.402823e+38 ≤UserData.Point[i].x ≤ 3.402823e+38,索引 i=1..UserData.NumberOfUsedPoints • -3.402823e+38 ≤UserData.Point[i].y ≤ 3.402823e+38,索引 i =1..UserData.NumberOfUsedPoints • UserData.Point[i].x 和UserData.Point[i].y 为有效的 REAL 值(≠ NaN),索引 i =1..UserData.NumberOfUsedPoints 错误消息为 ErrorBits ≥ 16#0001_0000 的错误如果有一个或多个错误消息为 ErrorBits ≥ 16#0001_0000 的错误处于未决状态,则 Polyline 的响应如下:• 无法按预期确定输出值。将输出替代输出值。 • 输出参数 Error 已置位。 • 使能输出 ENO 设为 FALSE。一旦不再有任何错误消息为 ErrorBits ≥ 16#0001_0000 的错误,Polyline 的响应如下: •输出值会通过如下方式确定: – 当 Reset = FALSE 时,通过插值计算 – 当Reset = TRUE 时,通过 SubstituteOutput 的输出 • 使能输出 ENO 设为TRUE。错误原因: 用作输出值的 SubstituteOutput 或 Input 参数不含有效的 REAL 值。 对错误的响应:输出设为 0.0。 解决方案: 确保用作输出值的参数是有效 REAL 值(≠ NaN,例如16#7FFF_FFFF)。用作输出值的参数 取决于 Reset 和 ErrorMode: Reset ErrorMode 输出值FALSE 0 Input FALSE 1 SubstituteOutput TRUE - SubstituteOutput0002_0000 错误原因: Input 参数不含有效的 REAL 值,在执行插值计算 (Reset = FALSE)。对错误的响应: 在 ErrorMode 变量中组态的替代输出值会在 Output 参数中输出。ErrorMode = 0 时,0.0 用作输出值。 只要 Input 参数中含有无效的 REAL 值,就不更新NextXIndex 变量 解决方案: 确保参数 Input 是有效 REAL 值(≠ NaN,例如16#7FFF_FFFF)。错误原因: 插值计算为 Output 参数生成了一个无效的 REAL 值。 对错误的响应: 在ErrorMode 变量中组态的替代输出值会在 Output 参数中输出。 只要该错误处于未决状态,NextXIndex变量就会含有无效值。 解决方案: 检查 WorkingData 结构中的 REAL 值是否有效。 其它信息:如果要更改折线数据,编辑 UserData 结构,设置参数 Validate = TRUE。请勿手动 更改WorkingData 结构的数据。