范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

SCL与STL的区别是什么,STEP7和博途SCL常见问题及解决办法!

  经典STEP7的SCL语言和博途的SCL略有不同,下面就经典STEP7的SCL与STL区别及一些常见问题做一个总结。
  一、SCL与STL
  SCL(Structured Control Language)语言,也就是结构化控制语言,它其实和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 的安装路径 Step7S7DATAS7wiz 下,包含所有 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 程序中对数据块间接寻址提供了良好的支持,编程也很简单。
  下面的程序列出了正确格式:
  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 为整数数据类型,这样可以实现数据块编号,字节地址同时间接寻址,此功能是一种功能很强间接寻址方式。
  以下是数据块直接寻址方式格式:
  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;

声生不息张智霖王源梦幻合作,林子祥叶蒨文互飙高音酣畅淋漓5月29日,由国家广电总局网络视听司港澳台办公室,香港中联办宣传文体部特别指导,湖南广电联合TVB出品的音乐献礼节目声生不息港乐季第三次主题竞演高能开唱!本次竞演以港乐与我的城市人资深电网无人机飞手,年薪15万的背后辛酸近几年,无人机电力巡检这个行业出现在大众视野里,那么电力巡检究竟能做些什么?弄清楚这个问题之前,首先要了解AOPA的作用,利用无人机对电力设施巡检的优势行业衍生的智能产品和技术服务冲上热搜!欧冠决赛巅峰对决,皇马再胜利物浦夺冠!来看豪门背后资本角逐点蓝字关注,不迷路据新华社报道,在20212022赛季欧洲冠军联赛决赛中,皇家马德里10击败利物浦夺得冠军。比赛下半场,巴尔韦德助攻维尼修斯破门,最终皇家马德里10战胜利物浦,获得年少不知女二好,台偶女二颜值永远没让人失望,谁是你的白月光?历来偶像剧设定,男主不爱美丽温柔超凡的女二,偏爱长相平凡性格坚韧的女主,在戏外看剧的我们是不是当时也都忽略了女二号的神仙颜值呢?天国的嫁衣卡翠娜关颖饰演的卡翠娜出场的时候,真的惊艳塔索蒂米兰只需再引进2直播吧5月29日讯AC米兰名宿塔索蒂近日接受米兰体育报采访,他谈到了红黑军团的引援问题,他表示米兰再买23名有分量的球员就够了。谁买下一支米兰这样的俱乐部,除了应把账目做好,还要知马伊琍的雀斑,郝蕾的胖,打了多少滤镜女明星的脸近日,沈腾在综艺中说过这样一句话人家可是演员。面对美食的诱惑,沈腾实在把持不住,只能用这句话来减轻吃夜宵的负罪感。正如沈腾所说,演员对于形象的管理是非常重要的,一定程度上决定了呈现考虑社会观感!香港公务员加薪幅度过高引争议,市民难以接受文区汉宗公务员拟加薪幅度过高激起极大争议,公务员团体表明值得加薪。香港公务员总工会主席冯传宗在电台节目表示,明白市民或认为个别官员表现不理想,但他认为坊间讨论的公众观感只属主观看法银格3后五集剧情梗概,诺亚无限梦参战,王国结局惨败就在日本和国内奥迷还在辛苦的追着每周一集的日版银格3时,欧美版银格3却已经将第510集全部放出,令人猝不及防,让一众国内奥迷好生羡慕,下面就让我来简单概括一下这五集的剧情。第五集小溥仪出狱后和杜聿明参观故宫,售票员买票才能进,他如何回答的故宫博物院的成立,伴随着紫禁城的华丽转身,曾经的皇家禁地现在寻常百姓也可以自由参观。故宫这座古老的建筑,在时间的长河中,见证了无数世事的变迁。物是人非事事休,欲语泪先流。身居其中的抗美援朝防空作战,对伪装作战的要求很高,要求做到五不见导语在世界的历史进程当中,中国的发展进步是有目共睹的,由从前那个东亚病夫变成如今的国际强国,这其中的艰难险阻,中国历史描写的淋漓尽致,那时的中国没有足够的国际实力,但面对求助的朋友奥运四朝元老熊倪相恋10年才结婚,父亲意外离世让他心痛点击关注,每天都有名人故事感动您!熊倪熊倪参加过汉城巴塞罗那亚特兰大悉尼4届奥运会,共夺得3金1银1铜,享有跳水王子的美誉。2001年,熊倪在第九届全运会上夺得男子单人3米跳板冠军
替代王薪凯!广东17号秀砍62气质出众,杜锋场边一动作太暖心广东大胜新疆19分,这似乎是赛前我们都无法预料到的结局!特别是随着赵睿伤退,杜润旺被夺权,广东男篮似乎陷入到了人员短缺的困局。不过联赛的T0外援马尚布鲁克斯和广东的一哥易建联的出色这个面试题居然从11年前就开始讨论了,而官方今年才表态大家好,我是歪歪。这期给大家盘一个面试题啊,就是下面的第二题。这个面试题的图片都被弄的有一点包浆了。所以为了你的观感,我还是把第二道题目手打一遍。啧啧啧,这行为,暖男作者实锤了sp这一领域火了,互联网巨头纷纷布局只要输入几个描述性的关键词,几秒钟就能得到一幅极具视觉冲击力的画作。今年以来,AI绘画也就是人工智能绘画,不断走热,谷歌微软等互联网巨头也纷纷布局这一领域。AI绘画站上风口互联网公从拳打苹果脚踢三星到黯淡落幕,锤子给手机圈留下了什么文新鲜科视手机圈也是一个江湖,有人向着星辰大海前进,自然也有人倒下,黯然消退。距离初代网红罗永浩退网已经4个月,今天就来盘一盘老罗最意难平的锤子科技,这个代表了他高光和低谷时刻的品A股市场利好消息,2022年11月1日(晚报)一丶中标或签约消息(一)长虹美菱子公司长虹空调空气能热泵热风机已经连续5年中标国家多个大中型煤改电清洁供暖项目。(二)吉电股份控股子公司中标中国铁塔(浙江)基站81。9mwh项目。每天花5毛钱最高可保300万!2023年北京普惠健康保上支付宝可投保2023年北京普惠健康保今日上线11月1日,由北京市医保局北京市金融监管局共同指导,北京银保监局监督的2023年北京惠普健康保正式上线。据了解,尽管有多项升级,但价格依旧不变,仍是小马智行三一重卡中国外运将建立智能重卡车队,首批车辆已下线记者唐俊11月1日,界面新闻从小马智行获悉,小马智行中国外运三一集团成立三方战略联盟,将共同打造技术车辆场景的智慧物流。小马智行是自动驾驶技术公司,三一集团旗下的三一重卡生产重型卡油价调整信息11月1日,全国各地调整后汽油柴油售价今天是11月1日,新的月份开始了,一起看看今天全国各地的油价都是什么情况吧。今天是本轮调整的第6个工作日,目前国内油价上涨100元吨,每升约上涨0。08元至0。10元,加满一箱汽油一场拆迁闹剧,揭开了南京楼市的浮躁先说说背景!在今年的10月16日,在建7号线莫愁湖站至南湖路站区间盾构接收钢套筒拆除时突发渗漏。迎宾村的一幢6层的楼房发生了倾斜并有随时倒塌的风险,经专家组综合研判,决定对该房屋实俞敏洪回应董宇辉直播时被泼水广汽菲克将申请破产商业参考NEWS今日要闻俞敏洪回应董宇辉直播时被泼水张庭陶虹等涉嫌网络传销案将开听证会广汽菲克将申请破产国铁集团前三季净亏947亿元上海迪士尼度假区将于10月31日起暂时关闭三大航企前三季国民女神老干妈直播带货!辣酱帝国要毁在房子手里?没人能躲得过一年一度的国民消费狂欢。就连身价90亿的国民女神陶碧华,也开启了直播带货。图源老干妈直播间截图古稀之年还要披甲上阵,75岁的陶碧华成为主播背后的原因令人唏嘘。国民爆款老