在 S7-SCL 中关于错误信息及警告的提示和技巧.doc_第1页
在 S7-SCL 中关于错误信息及警告的提示和技巧.doc_第2页
在 S7-SCL 中关于错误信息及警告的提示和技巧.doc_第3页
在 S7-SCL 中关于错误信息及警告的提示和技巧.doc_第4页
在 S7-SCL 中关于错误信息及警告的提示和技巧.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

在 S7-SCL 中关于错误信息及警告的提示和技巧描述:此条目包含一些关于错误信息及警告的提示和技巧。解释了下面的信息:1. 当将一个实数赋值给一个双字变量时,提示信息是“Invalid data type”2. 在输出窗口中错误信息与程序行数不匹配3. 信息:“The FB is not available or the instance declaration is missing”4. 信息:“Character strings have different lengths”5. CPU 信息:“STOP due to unknown OP code”6. 在编译 UDT 时提示“Syntax error with UNLINKED”7. 在编译一个 DB 块时提示“Syntax error with 2#1100_1100”8. 到达交换区最大长度 (64 Kbytes)9. 在 CPU 运行的时候出现消息:“16#8184”10. 信息:“可测试的组件或实例已达最大数量”11. 编译时错误信息: “Incorrect block”下表提供了上述问题的原因及其补救方法:No.原因及解决办法1当将一个实数赋值给一个双字变量时,提示信息是“无效数据类型”注意只有当数据类型为 BOOL,BYTE,WORD 和 DWORD 时,才允许对 DB 块的绝对地址进行访问。图 01 举例说明一个数据类型何时必须要转换。图 012在输出窗口中错误信息与程序行数不匹配当行数超过 65535 时,S7-SCL 编译器再次从 1 开始计数。例如,一个编程错误出现在 S7-SCL 源程序的第 65537 行,后面的行数字将输出: F: Z 00001 error xyz instead of F: Z 65537 error xyz补救方法:双击S7-SCL 编译器输出窗口中的错误信息,光标将跳到不正确的行。如果编程错误不在指定行中,可以使用菜单命令“Edit Go To Line . ”,然后输入“65536 + 显示错误数字”跳转至有错误声明的行。注意:建议减少 S7-SCL 源程序中的行数。然后编译源程序。3消息:“The FB is not available or the instance declaration is missing”如果一个 FC/FB/SFB/SFC 块在程序中被调用,而这个程序块不在块程序文件夹中,也不能从库里复制,将会显示这条消息。补救方法:手动复制相关的程序块到块程序文件夹中,然后编译 S7-SCL。4消息:“Character strings have different lengths”在图02示例中包含FC1和FC2带有字符串变量name_1与name_2,当FC1被编译时,得到警告Character strings have different lengths。在运行期间,在赋值的右侧(name_1)可能是一个比左侧所允许的STRING变量(name_2)具有更长长度的STRING字符串。补救方法:建议为左边的变量“name_2”声明一个长度为254 字符的 STRING 字符串。如果编译具有这个声明的功能块 FC2 ,上述警告将不会再出现。图 02注意:如果增加 STRING 长度达到 254 字符,将会需要更大的本地装载存储空间。5CPU 消息:“STOP due to unknown OP code”如果在 S7-SCL 中使用转换功能“WORD_TO_BLOCK_DB(.)”,并且编辑以下语句时将会显示这条 CPU 消息。 Display := WORD_TO_INT(BYTE_TO_WORD (WORD_TO_BLOCK_DB (DBNo).DBDBIndex);补救方法:建议用以下两条声明语句替代上面所给的语句: tmp := WORD_TO_BLOCK_DB (DBNo).DBDBIndex; Display := WORD_TO_INT (BYTE_TO_WORD (tmp);上面的消息将不会再出现,并且 CPU 也不会进入 STOP 模式。6在编译 UDT 时提示“Syntax error with UNLINKED”在 S7-SCL 中,如果一个 UDT 在用“UNLINKED”声明之前已标识,该 UDT 将不会被编译通过。“UNLINKED”属性不可用于 UDT。随着提示“关于 UNLINKED 的句法错误”的错误消息,编译停止。该规则也应用于 STL 源程序声明。UDT 通常不能被装载到 S7 CPU 中,但总是存储于“离线”的 S7 用户程序中。背景对于数据块的情况,“UNLINKED” 属性意味着 DB 块关联。 在程序中非一体化的 仅存储于装载存储器中 不占据任何空间。“UNLINKED” 属性在数据块头部声明(图 03)图 037在编译一个 DB 块时提示“Syntax error with 2#1100_1100”在数据块中,如果给一个 BYTE 类型的变量赋值一个二进制数字作为初始值,当编译 S7-SCL 源程序时将出现“2#.的句法错误”的错误消息。例如: Var1: BYTE:= b#2#1100_1100;在 S7-SCL 中,数据块由 STL 编译器生成。如果在数据块的 DB 块准备部分和 DB 块赋值部分同时初始化变量,必须使用 STL 专用符号。因此,在 Byte 类型的变量的示例中,仅允许指定十六进制数作为初始值。S7-SCL 符号(例如 B#2#1100_1100)只能用于代码区,因为 S7-SCL 编译器在代码区被使用。补救方法:将二进制数改为十六进制数作为初始值,例如: Var1: BYTE:= b#16#cc;注意: S7-SCL 符号在 S7-SCL 在线帮助下“Notation of constants”(常量符号)中可用,且 STL 符号在 STEP 7 在线帮助下“Help on STL Entering and displaying constants”(STL 帮助 输入和显示常量)中可用。8到达交换区最大长度 (64 Kbytes)如果自动化设备的接口大小超限(64 Kbytes)时会出现这条信息每个单独元素的声明需要 2 个字节。当声明多重背景或者用户自定义数据类型(UDTs)时也会像结构类型(STRUCT)一样每个单独的结构占用 2 个字节。补救方法:按照下面的方法可以清除上面描述的情况。1. 缩短变量名的长度为一个有效的最小值。2. 删除不必要的声明事件。3. 例如,通过声明一个 BOOL 类型的 ARRAY 使用 ARRAY 事件声明,而不是单独的命名每个位。4. 如果 1 到 3 点都没有帮助,分割 S7-SCL 源程序为两个或更多的 S7-SCL 源。9在 CPU 运行的时候出现错误消息: 16#8184当传输参数为 ANY类型的块在 STL 中被调用的时候,STRING数据类型的参数可能不会被传送。这是一个系统属性。补救方法:如果您需要只在 STL 中传送 STRING 类型的参数,如果可以使用其它数据类型,可以用 ARRAY 或者 STRUCT 数据类型来代替 STRING 数据类型。10消息:“可测试的组件或实例已达最大数量”如果在S7-SCL 源代码中通过“Tools Settings Tab: Compiler”激活了“Generate Debug Info”选项,则上面所示的警告会在编译时出现。这意味着部分源代码不能查看,因此不能单步运行。这是由于S7-SCL的内部系统限制。如果编程时使用的结构包含多于254个组件,则在编译后的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论