2 SFC的公共参数
2.1 通过输出参数RET_VAL判断出错
出错信息的类型
在用户程序中执行的系统功能(SFC)将指示CPU是否能够成功执行SFC的功能。
您可获取有关已出现的任何出错的信息,这些信息将以如下两种方式显示:
• 在状态字的BR位中
• 在输出参数RET_VAL(返回值)中
注意
在判断某个特定SFC的输出参数前,您应始终执行以下步骤:
• 首先,判断状态字的BR位。
• 然后,检查输出参数RET_VAL。
如果BR位指示出现了出错或者如果RET_VAL包含一个常规出错代码,则您不得判 断该SFC的输出参数!
返回值中的出错信息
系统功能(SFC)通过在状态字的二进制结果位(BR)中输入值“0”来指示执行时出现了 一个出错。某些系统功能会在称为返回值(RET_VAL)输出的输出处提供附加出错代 码。如果在输出参数RET_VAL中输入一个常规出错(相关解释请参见下文),则只能 通过状态字BR位中的值“0”指示。
返回值为整型数据类型(INT)。返回值与值“0”之间的关系指示出在执行该功能时是否 出错。
在CPU上执行SFC BR 返回值 整数符号
出现出错 0 小于“0” 负
(符号位为“1”)
未出现出错 1 大于或
等于“0”
正
(符号位为“0”)
长沙工控帮教育科技有限公司整理
对出错信息的响应
RET_VAL中有如下两种不同类型的出错代码:
• 所有系统功能均可输出的常规出错代码以及
• 系统功能可输出的特定出错代码,该代码与其特定功能相关。
您可以编写程序,使其对系统功能执行期间出现的出错作出响应。这样,您便可防 止由第一个出错而导致的更多出错的出现。
常规和特定出错信息
系统功能的返回值(RET_VAL)将提供下列两种出错代码类型之一:
• 与可在任何系统功能中出现的出错相关的常规出错代码。
• 仅与特定系统功能相关的特定出错代码。
虽然输出参数RET_VAL的数据类型为整型(INT),但会根据十六进制值对系统功能的 出错代码进行编组。如果您要检查某个返回值并将该值与本手册中列出的出错代码 进行比较,则请用十六进制格式显示出错代码。
下图给出了十六进制格式的系统功能出错代码结构。
Error code, for example W#16#8081
Sign bit = 1 indicates that an error has occurred.
15 8 7 0
1
X
Event number or error class and single error x = ‘0’ indicates that this is a specific error code from an SFC. The error codes are listed in the section entitled "Error Information" in the
descriptions of the individual system functions.
x > ‘0’ indicates that this is a general error code from an SFC. In this case, x is the number of the SFC parameter that caused the error. The possible error codes are shown in the following table.
长沙工控帮教育科技有限公司整理
常规出错信息 Bits 15
Sign
Event number Parameter number
1
注意
如果在RET_VAL中输入了一个常规出错代码,则可能会出现下列情况:
• 与SFC相关的操作可能已开始或者已经完成。 Bits 15
Sign
Error no.
Error class 1
3 4
0 1
长沙工控帮教育科技有限公司整理
常规出错代码
8x01 ANY参数中的非法语法ID 8x22 打开的,则系统功能将始终返回值W#16#8x30。
8x32