网易首页 > 网易号 > 正文 申请入驻

SCL与STL的区别是什么?SCL常见问题及解决办法!

0
分享至

经典STEP7的SCL语言和博途的SCL略有不同,下面就经典STEP7的SCL与STL区别及一些常见问题做一个总结。

一、SCL与STL

SCL(StructuredControlLanguage)语言,也就是结构化控制语言,它其实和IEC标准制定的ST语言是一样的。S7-SCL 可以编译成 STL, 虽然其代码量相对于 STL 编程有所增加,但我们更关心的是程序结构和程序的总体效率。类似于计算机行业的发展,汇编语言已经被舍弃,取而代之的是 C/C++等高级语言。S7-SCL 对工程设计人员要求较高,需要其具有一定的计算机高级语言的知识和编程技巧。

STL是STEP7时代推出的语言,它不是STRUCT TEXT LANGUAGE的缩写,所以它和ST语言完全没关系。STL语言是一种汇编语言,是面向机器底层的语言,可以直接操作寄存器,可读性不强,和80C51单片机的机器语言是一个层面。所以它是一种低级语言,而ST和SCL都是中高级语言。

二、S7-SCL常见问题解答

1、如何规范地的开发一个 S7-SCL 程序?

解答:开发一个 S7-SCL 程序,应当遵循如下流程:

• 规划需要的块类型,即程序的整体结构。

• 规划子任务(FB,FC 等等)

• 定义各个子任务的之间输入/输出接口

• 定义各个子任务在原文件中的顺序及调用关系

• 定义符号表

• 编译检查

• 下载调试

2、S7-SCL 支持哪些 STEP7 块,与其它语言有什么关系?

解答:S7-SCL 支持如下 STEP7 的块:OB,FC,FB,DB,UDT。在 S7 程序中,S7-SCL 块可以与其它STEP7 编程语言生成的块互相调用。S7-SCL 可以被编译成 STL, S7-SCL 生成的块也可以作为库文件被其它语言引用。由于 S7-SCL 程序由 ASCII 文本构成,所以它非常容易被导入或导出。

3、为什么双击打开 S7-SCL 类型的程序后,显示的格式却是 STL 格式?

解答:S7-SCL 程序编译后生成的执行代码实际上为 STL 格式,如下图中的 FC1, 虽然其标示为 SCL格式,但如果用户将 Source 目录中的 FC1 的源文件删除后,再双击打开 FC1 后,显示的将为STL格式。

4、什么是 OK Flag?

解答:在 S7-SCL 程序中,OK 是一个布尔类型的特殊本地变量。它用来显示块执行是否正确。OK 标志的使用与 STL 编程中对于 FC/FB 的 ENO 处理(STL 是用状态字的 BR 位来保存状态)非常相似。在程序的开始,可以将 OK 标志赋值为 TURE,如果程序执行有错误(例如 0 作为除数),则当程序退出时,用户通过程序将 OK 标志改写为 FALSE,此数值将被存储在输出参数 ENO 当中。OK 标志是一个系统变量,不需要定义,如果用户希望在程序中使用此标志,可以在 S7-SCL编程菜单 Options>Customize>Compiler 中,应当选择 Set OK flag.项。否则 ENO 将无法被评估。

OK 标志使用的例子:

OK:= TRUE;

Division:= 1 / IN;

IF OK THEN // 除法操作正常

;// 此处可以添加在除法操作正常情况下,其它的用户程序

ELSE //除法操作不正常

END_IF;

5、在 STL 中可以读取一个组织块的信息 (例如 OB1 中的循环时间),在 S7-SCL 中是否存在同样的可能?

解答:STEP7 中的任意 OB 块在生成之后,其内部都自动生成一些特有的临时变量,例如 OB1 中的变量OB1_PREV_CYCLE 即为CPU 上个扫描周期所用的时间。在 S7-SCL 编辑器中,通过“Insert> Block Template > OB”创建一个 OB 模板。在缺省情况下,此模板的临时变量区域将创建一个ARRAY OF BYTE 类型的临时变量。此区域与 OB 块的临时变量区域是相对应的,但由于没有变量名称标识,并且数据类型也不相同,所以用户使用起来非常不方便。如果用户想要使用 S7-SCL格式的 OB 块内的特有变量,请按下列步骤进行:

• 在路径 STEP7 的安装路径 \Step7\S7DATA\S7wiz 下,包含所有 OB 块的 STL 格式模板,可以使用写字板打开这些模板 (例如 OB31.awl), 并复制相应变量定义。

• 创建一个新的 S7-SCL 源文件并插入刚才复制的变量定义。

• 调整 S7-SCL 源文件中的语法结构

• 在这个程序的开始部分, 可以设置 "Title" 和"Version" , 例如 Title=' ' 和 Version= '0.1'

• 在 BEGIN 语句后面插入一个分号,至此,即完成格式修改。

另外,也可以打开本文中的 S7-SCL 例子目录中的 OB_Templ 项目,其中包括了 44 个 S7-SCL 源文件格式的组织块。

6、如何理解 FC/SFC 的输出参数 RET_VAL(返回值)?

解答:对于此问题,如果读者对PASCAL 语言或者高级编程语言非常熟悉,可能此问题就非常容易解释。许多 SFC (系统功能) 都有输出参数 RET_VAL (返回值) ,它提供一个可供评估的错误代码。STEP 7 在线帮助中提供有更多关于系统功能和输出参数 RET_VAL 的信息。通过在 SIMATIC管理器中选中 SFC 然后按“F1”键可以获取相关的在线帮助信息。同样,一个 FC 也可以返回一个结果,下面给出了一些例子,说明了如何在 S7-SCL 中调用带有返回值 (RET_VAL) 的功能 (FC 或 SFC)。

定义 FC1, 函数类型为 INT (返回值)

调用 FC1,得到返回值:

调用一个系统功能 (SFC24):当调用系统功能 SFC 24 “TEST_DB”(测试数据块) 时,得到关于 CPU主内存中一个数据块的信息。SFC24 确定指定 DB 的数据字节数,并检查该 DB 是否受到写保护。选定 DB 所包含的数据字节数通过参数“DB_LENGTH”输出,参数“WRITE_PROT”包含关于选定 DB 的写保护 ID 的信息 (FALSE 表示没有写保护)。

7、在 S7-SCL 程序中,PLC 中的地址标识与 STL/LAD 中的地址标识有何区别,使用中有何注意事项?

解答:在 S7-SCL 程序中,PLC 中的地址标识与 STL/LAD 中的地址标识基本相同,方便了编程人员快速掌握 S7-SCL 语言。下图为 PLC 中的 S7-SCL 程序地址标识格式,图中一些格式有些特殊,实际上,下面的格式在

S7-SCL 中都是正确的。

DB1.D0.0:=DB1.DBX0.1;

DB1.DB1:=DB1.DBB1;

DB1.DW2:=DB1.DBW2;

DB1.DD4:=DB1.DBD4;

QX0.0:=Q0.0;

IX0.0:=I0.0;

MX0.0:=M0.0;

所以说,在一般情况下,编程人员依旧可以 STL 的标识方式用于 S7-SCL。注意:如果数据块编号及地址都使用了间接寻址方式,则必须使用 S7-SCL特定的标识方式,例如如下语句:

STATUS_1:=WORD_TO_BLOCK (INDEX).DW [COUNTER]; (此格式正确)

STATUS_1:=WORD_TO_BLOCK (INDEX).DBW [COUNTER]; (此格式错误)

上图为S7-SCL 中的 PLC 地址格式。x 可以为 0 至 65535 之间的数字(绝对地址),y 可以为 0 至 7 之间的数字(位地址),对于其它 FB,OB,DB, T,C 等等的标识格式,S7-SCL 格式基本与 STL 格式相同,此处不做说明。

8、为什么用户人工输入的程序在编译时经常提示语法错误?

解答:S7-SCL 程序和所有的高级语言一样,有着自己特定的语法,而很多编程人员容易在人工输入程序时忽视语法格式,这样就造成编译错误。因此强烈建议编程人员使用 S7-SCL 的模板向导。在菜单 Insert 中,提供了 Block Call, Block Template, Control Structure, 三个向导,用户可以通过使用此向导,提高输入效率。例如在下图中指出了两个常见错误,用户如果使用向导,就不容易出错误:

9、S7-SCL 程序中如何使用多重背景?

解答:S7-SCL 程序中可以使用多重背景,下面的程序列出了正确格式,声明完成后,在程序中即可调用:

Supply1 : FB10; //将 Supply1 定义为 FB10 类型

Supply2,Supply3,Supply4 : FB100; //将 Supply2,Supply3,Supply4 定义为 FB100 类型

10、如何在 S7-SCL 程序中实现数据块间接寻址?

解答:S7-SCL 程序中对数据块间接寻址提供了良好的支持,编程也很简单。

<1>下面的程序列出了正确格式:

STATUS_1:= DB11.DW[COUNTER]; //字节间接寻址

STATUS_2:= DB12.DX[WNO, BITNO]; //位间接寻址,用户改变 WNO,BITNO 数值即可

STATUS_1:= Database1.DW[COUNTER]; // Database1 为 DB 类型的本地变量

STATUS_2:= Database2.DX[WNO, BITNO];

STATUS_1:= WORD_TO_BLOCK_DB(INDEX).DW[COUNTER];

//INDEX 被定义为 BLOCK_DB 数据类型,COUNTER 为整数数据类型,这样可以实现数据块编号,字节地址同时间接寻址,此功能是一种功能很强间接寻址方式。

<2>以下是数据块直接寻址方式格式:

STATUSBYTE :=DB101.DB10; //字节直接寻址格式

STATUS_3 :=DB30.D1.1; //位直接寻址格式

MEASVAL :=DB25.DW20; //字直接寻址格式

STATUSBYTE :=Status_data.DB10;

STATUS_3 :="New data".D1.1;

MEASVAL :=Measdata.DW20;

STATUS_1 :=WORD_TO_BLOCK_DB (INDEX).DW10;

11、在 S7-SCL 程序中调用 FC/FB 与在 STL/LAD 中调用 FB/FC 有何区别?

解答:在 STL/LAD 程序中调用 FB 可以不把参数填写完整,但在 S7-SCL 程序中调用 FB 时,必须把FB参数填写完整;对于FC的调用S7-SCL与STL/LAD区别不大。强烈建议编程人员使用S7-SCL的模板向导调用 FB。

12、为了将 S7-SCL 中的位数据类型(BYTE, WORD 或 DWORD)转换到“REAL”数据类型时,需要使用哪种数据类型转换程序?

解答:为了将 S7-SCL 中的位数据类型(BYTE, WORD 或 DWORD)转换到数字数据类型“REAL”时,需要使用以下指令:

• 从 BYTE 到 REAL:“DINT_TO_REAL(DWORD_TO_DINT(BYTE_TO_DWORD(value))”

• 从 WORD 到 REAL:

“DINT_TO_REAL(DWORD_TO_DINT(WORD_TO_DWORD(value))”

• 从 DWORD 到 REAL:

“DINT_TO_REAL(DWORD_TO_DINT(value))”

注意事项:用户在将 BYTE, WORD 或 DWORD 数据类型转换到 “REAL” 数据类型时,S7-SCL中常见的错误可以参考下例:

从 WORD 到 REAL:“DWORD_TO_REAL(WORD_TO_DWORD(value))”(错误程序)。

如果执行了这一转换,会得到错误的结果。原因:DINT_TO_REAL 函数将把源数据转换并按照 IEEE REAL 的格式存储到目的变量,而DWORD_TO_REAL 仅仅是从源数据拷贝位串至目的变量。因此,为了获得正确的“REAL”数,必须总是通过中间步骤“DWORD_TO_DINT”和“DINT_TO_REAL”实现。

13、在 S7-SCL 中如何区分某个变量名是本地变量,还是符号名?

解答:S7-SCL 中本地变量与符号名的引用有如下区别:

• 如果引用中只有变量名,则此变量为本地变量,如:Motor_Status:= Motor_1

• 如果引用中变量名称上包括“”,则此变量为符号名,如:Motor_Status:= “Motor_1”

14、如何访问一个字符串中的单个字符?

解答:对于字符串中的单个字符,使用如下的访问格式,是错误的:

MB10 := str[5] 这样的表达式无法实现将字符串的第 5 个字符送至 MB10 中。

方法:可以使用 IEC 函数 MID 来得到字符串的某个部分,例子如下:

VAR

str : STRING[20];

END_VAR

MB10:=CHAR_TO_BYTE(STRING_TO_CHAR(MID(IN:=str,L:=1,P:=5)));

15、如何加密我的 S7-SCL 程序?

解答:S7-SCL 程序加密与 STL 程序加密方法几乎一样,用户可以在程序中加入关键字:KNOW_HOW_PROTECT,再进行编译即可,下图中的 FC1 在编译后,即出现了加锁保护的图标 。

注意:提供给最终用户的项目中应当删除 S7-SCL 源代码,否则用户在双击加密的块后(例如下图中的 FC1),依然可以关联打开 S7-SCL 源代码。

注意:提供给最终用户的项目中如果删除 S7-SCL 源代码,用户将只能看到 STL 格式的程序,稍微复杂些的 S7-SCL 程序在 STL 格式下几乎是无法阅读的。此方法类似于加密的效果。

16、如何对 S7-SCL 程序中的数据块及静态变量初始化?

解答:S7-SCL 程序中对数据块及静态变量初始化和 STL 语言格式类似,下面的程序列出了正确格式:

DAT1 : REAL := 100.5;

A1 : INT := 10 ;

A2 : STRING[6] := 'FACTOR';

A3 : ARRAY[1..12] OF REAL := 0.0, 10(100.0), 1.0;

免责声明:本文转自网络,版权归原作者所有,如涉及作品版权问题,请及时与我们联系删除,谢谢!

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
无锡发一笔钱,直接给到个人!

无锡发一笔钱,直接给到个人!

江南晚报
2025-11-04 20:13:18
央视提醒:免疫力是最好的医生,用8个方法激活它

央视提醒:免疫力是最好的医生,用8个方法激活它

诗词中国
2025-11-03 21:30:33
小雨明天抵达,年度最大“超级月亮”今晚现身,最佳观赏时间在……

小雨明天抵达,年度最大“超级月亮”今晚现身,最佳观赏时间在……

上海徐汇
2025-11-05 17:33:55
高德地图覆盖台湾,国台办回应

高德地图覆盖台湾,国台办回应

极目新闻
2025-11-05 13:51:14
2026年放假安排最全解读:除了春节9天,其他假期怎么放?

2026年放假安排最全解读:除了春节9天,其他假期怎么放?

暖气片优选
2025-11-04 17:47:25
高中时期你经历过哪些炸裂事迹?网友:大家的青春都这么污的吗

高中时期你经历过哪些炸裂事迹?网友:大家的青春都这么污的吗

带你感受人间冷暖
2025-10-03 00:20:08
一个都跑不掉!华为600万年薪高管,带13人偷芯片,如今下场解气

一个都跑不掉!华为600万年薪高管,带13人偷芯片,如今下场解气

春序娱乐
2025-11-05 19:11:00
王传君获影帝现场感谢白百何:我是一个配得感很低的人,她们的高光照亮了在角落的我;此前白百何发文引猜测

王传君获影帝现场感谢白百何:我是一个配得感很低的人,她们的高光照亮了在角落的我;此前白百何发文引猜测

鲁中晨报
2025-11-05 18:27:06
斯诺克半数8强诞生!中国军团2胜1负,吴宜泽6连鞭逆转世界第1!

斯诺克半数8强诞生!中国军团2胜1负,吴宜泽6连鞭逆转世界第1!

刘姚尧的文字城堡
2025-11-05 18:00:53
白所成宣判死刑,被称“缅北名媛”的毒女白应兰,何时能落入法网

白所成宣判死刑,被称“缅北名媛”的毒女白应兰,何时能落入法网

阿纂看事
2025-11-05 08:35:38
陈芋汐失利!中国跳水新星遭冷遇!全红婵与陈芋汐命运何去何从

陈芋汐失利!中国跳水新星遭冷遇!全红婵与陈芋汐命运何去何从

小毅说事
2025-08-07 20:32:59
年轻人不买账,中年人喝不起!茅台跌破1600,终于承认只是瓶酒?

年轻人不买账,中年人喝不起!茅台跌破1600,终于承认只是瓶酒?

金融八卦女
2025-11-05 13:57:48
股票起飞前,"换手率"都会出现这样的特征,不懂的散户请不要炒股

股票起飞前,"换手率"都会出现这样的特征,不懂的散户请不要炒股

股经纵横谈
2025-11-05 17:30:10
四大中锋干不过一个陶汉林!兵多将广仅赢山东16分,杜锋惨遭打脸

四大中锋干不过一个陶汉林!兵多将广仅赢山东16分,杜锋惨遭打脸

后仰大风车
2025-11-04 21:26:28
取钱新规出来了!2025开始,死者的存款不再受银行的气!

取钱新规出来了!2025开始,死者的存款不再受银行的气!

巢客HOME
2025-11-04 11:40:03
瘦肚子的实用方法!只需要一招,把“大肚腩”变成平坦小腹!

瘦肚子的实用方法!只需要一招,把“大肚腩”变成平坦小腹!

增肌减脂
2025-11-04 19:26:49
浙江台州“第一高楼”天盛中心将被拍卖,起拍价28.685亿元

浙江台州“第一高楼”天盛中心将被拍卖,起拍价28.685亿元

澎湃新闻
2025-11-05 12:18:29
战机坠海后,美航母冲向黄岩岛,中国要拔4根钉子,战区高度戒备

战机坠海后,美航母冲向黄岩岛,中国要拔4根钉子,战区高度戒备

时时有聊
2025-11-04 16:17:32
他是张金玲儿子,长相俊朗海外留学归来拒当演员,与继父关系更亲

他是张金玲儿子,长相俊朗海外留学归来拒当演员,与继父关系更亲

胡一舸南游y
2025-11-05 15:16:07
哇太漂亮了,俄罗斯顶级女神,五官绝美,完全符合东方的审美

哇太漂亮了,俄罗斯顶级女神,五官绝美,完全符合东方的审美

小椰的奶奶
2025-11-05 11:59:03
2025-11-05 20:32:49
来学网建筑类考试
来学网建筑类考试
做一个有温度的建筑类考试平台
2967文章数 445关注度
往期回顾 全部

科技要闻

大转弯!特朗普再提名马斯克盟友任NASA局长

头条要闻

国足换帅 邵佳一曾被赞是在德国踢球最成功的中国球员

头条要闻

国足换帅 邵佳一曾被赞是在德国踢球最成功的中国球员

体育要闻

赢下皇马,会是利物浦的转折点吗?

娱乐要闻

港星林尚武突发心脏病去世

财经要闻

中方官宣!对美关税,调整!

汽车要闻

智己LS9入局"9系"混战 全尺寸SUV市场迎来新变量

态度原创

教育
艺术
旅游
手机
游戏

教育要闻

傲慢与偏见英文版语音课04:宾利先生是单身吗?

艺术要闻

蒲华:搦管写竹,墨沈淋漓

旅游要闻

组图丨泰山秋景隐藏款!彩石溪更新绚丽“皮肤”

手机要闻

小米17 Pro系列隐身模式上线:背屏一键关闭麦克风、摄像头、定位权限

《GTA6》或将迎来重磅角色!前作诸葛亮级大佬回归

无障碍浏览 进入关怀版