S7-SCL 编程
Programming with S7-SCL
https://support.industry.siemens.com/cs/cn/zh/view/109481384
Getting Started Edition (2008 年 7 月)
A&D Service & Support Page 2-39
摘 要
本文档主要用于讨论与 S7-SCL 编程相关的以下问题:
² 编程软件的基本信息
² 基本概念讲解
² 基本使用讲解
² 用于示例工程的简单应用例子
² 实际使用中常见问题及讲解
关键词
编程工具;Step7;语句表;S7-SCL;
Key Words
Programming tools; Step7;STL;S7-SCL;
A&D Service & Support Page 3-39
目 录
S7-SCL 编程 .............................................................................................................. 1
1. 前言 ..................................................................................................................... 5
2. 软件的基本信息 ................................................................................................... 5
2.1. S7-SCL 简介 .......................................................................................................... 5
2.2. S7-SCL 与 STL: ................................................................................................. 6
2.3. S7-SCL 的安装与使用: ...................................................................................... 6
2.4. S7-SCL 软件兼容性 .............................................................................................. 6
3. S7-SCL 应用于虚拟工程 ..................................................................................... 7
3.1. 虚拟工程工艺要求 ................................................................................................ 7
3.2. S7-SCL 简单示例 .................................................................................................. 7
3.2.1. 重要提示: ........................................................................................................................... 16
4. S7-SCL 常见问题 .............................................................................................. 17
4.1. 程序编写相关问题 .............................................................................................. 17
4.1.1. 问题:S7-SCL 支持哪些 STEP7 块,与其它语言有什么关系? .................................... 17
4.1.2. 问题:如何规范地的开发一个 S7-SCL 程序? ................................................................ 17
4.1.3. 问题:如何加密我的 S7-SCL 程序? ................................................................................ 17
4.1.4. 问题:为什么双击打开 S7-SCL 类型的程序后,显示的格式却是 STL 格式? ........... 18
4.1.5. 问题:什么是 OK Flag? .................................................................................................... 18
4.1.6. 问题:S7-SCL 中读取一个组织块的信息 ........................................................................ 19
4.1.7. 问题:如何理解 FC/SFC 的输出参数 RET_VAL(返回值)? .................................... 20
4.1.8. 问题:在 S7-SCL 程序中,PLC 中的地址标识使用的注意事项 .................................. 21
4.1.9. 问题:为什么用户人工输入的程序在编译时经常提示语法错误? ............................... 22
4.1.10. 问题:如何对 S7-SCL 程序中的数据块及静态变量初始化? ...................................... 23
4.1.11. 问题:什么是“AT”指令,如何使用? ......................................................................... 23
4.1.12. 问题:S7-SCL 程序中如何使用多重背景? ................................................................... 28
4.1.13. 问题:如何在 S7-SCL 程序中实现数据块间接寻址? .................................................. 28
4.1.14. 问题:在 S7-SCL 程序中调用 FC/FB 与在 STL/LAD 中有何区别? ........................... 29
4.1.15. 问题:转换到“REAL”数据类型需要使用哪种数据类型转换程序? ........................... 30
4.1.16. 问题:在 S7-SCL 中如何区分变量名是本地变量,还是符号名? .............................. 30
4.1.17. 问题:如何访问一个字符串中的单个字符? ................................................................. 30
4.2. 程序优化相关问题 .............................................................................................. 31
4.2.1. 问题:如何在访问结构时优化运行时间? ....................................................................... 31
A&D Service & Support Page 4-39
4.2.2. 问题:如何用布尔型变量优化 IF 语句来缩短循环时间? ............................................. 32
4.3. 编译错误相关问题 .............................................................................................. 34
4.3.1. 问题:S7-SCL 程序在别人的计算机上打不开或无法编译? ......................................... 34
4.3.2. 问题:为什么我的程序与别人的程序完全一致,却通不过编译? ............................... 34
4.3.3. 问题:包含比较类型为 WORD/DWORD 的变量的 IF 语句不能被编译通过? ................. 35
4.3.4. 问题:当给一个双字类型变量分配了一个实型数值时,出现非法数据类型错误 ....... 35
4.3.5. 问题:在输出窗口中的错误消息与程序行数字不符 ....................................................... 35
4.3.6. 问题:"The FB is not available or the instance declaration is missing" .............................. 36
4.3.7. 问题:"Character strings have different lengths" ................................................................. 36
4.3.8. 问题:CPU 消息"STOP due to unknown OP code" ............................................................ 37
4.3.9. 问题:在编译 UDT 时出现"Syntax error with UNLINKED" ............................................ 37
4.3.10. 问题:在编译 DB 时出现"Syntax error with 2#1100_1100" ........................................... 38
4.4. 与监控调试相关问题 .......................................................................................... 38
4.4.1. 问题:为什么我的程序编译通过,但无法运行? ........................................................... 38
4.4.2. 问题:为什么我的程序无法被监控? ............................................................................... 38
4.4.3. 问题:在 S7-SCL 哪些变量在监控时无法被显示? ........................................................ 39
重要提示:本文为技术交流文档,不能作为订货、选型等重要事宜的唯一依据,建议您参考
Siemens 的标准产品样本和技术手册进行产品的选型和订货。
A&D Service & Support Page 5-39
1. 前言
本文可以作为 S7-SCL 编程语言的使用参考资料,希望读者通过对本章的阅读,能够更快更好
地学习 S7-SCL 编程语言。西门子提供了 S7-SCL 编程语言的详尽手册,在安装 S7-SCL 软件包后,
通过点击 Windows 菜单 开始->Simatic->Documentation->English 可以阅读到名称为“S7-SCL for
S7-300 and S7-400”的 PDF 手册。此手册共分为 16 个章节,其详细地讲解了 S7-SCL 编程语言。
一切关于 S7-SCL 使用的问题请以此手册为准。
相对于西门子 PLC 的其它类型编程语言,S7-SCL 与计算机高级编程语言有着非常相近的特性,
只要使用者接触过 PASCAL 或者 VB 编程语言,实现 S7-SCL 的快速入门是非常容易的。所以本文将
不会对 S7-SCL 进行类似手册一样的详细讲述,而是通过列举一个简单例子,使读者实现 S7-SCL
快速入门。在讲解例子内容之后,再列举出一些用户在实际使用当中经常会遇到的问题。这部分
内容大多来自实际用户,具有较强的针对性,希望能够对用户有所帮助。
相关手册地址连接:
S7-300 和 S7-400 的语句表 (STL) 编程
http://support.automation.siemens.com/CN/view/zh/18653496
使用 STEP 7 V5.3 编程
http://support.automation.siemens.com/CN/view/zh/18652056
S7-SCL V5.3 for S7-300/400
http://support.automation.siemens.com/CN/view/zh/5581793
2. 软件的基本信息
2.1. S7-SCL 简介
S7-SCL(Structured Control Language 结构化控制语言) 具有以下特点:
² 是一种类似于PASCAL的高级编程语言,
² 符合国际标准IEC 61131-3
² PLCopen基础级认证
² 适用于 SIMATIC S7-300 (推荐用于CPU314以上CPU), S7-400, C7 and WinAC
S7-SCL 为 PLC 做了优化处理,它不仅仅具有 PLC 典型的元素(例如 输入/输出,定时器,