当前位置:首页 » 编程软件 » 博途scl语言提示未编译

博途scl语言提示未编译

发布时间: 2022-08-21 08:55:57

A. 在Step 7使用SCL语言的问题!

SCL语言是类PASCAL语言,并不是C,前些年比较风靡的DELPHI就是采用的PASCAL语言。
另外补充一下对SCL的感受:
1、CASE指令可实现STL的JL指令的功能,使用起来更直观化,另外支持GOTO跳转,对于程序实现步进控制同样很方便。
2、SCL不仅可以在线调试,而且支持变量"参考数据"功能,并且变量符号与绝对地址无一疏漏。
3、对于SCL上升沿下降沿检测的实现我并不同意4楼所说,同样只需要像STL、LAD定义一个沿检测位,
即可轻松实现沿检测功能,下面举一上升沿例子:
上升沿检测原理: IF In AND NOT Mem THEN //沿检测逻辑
执行语句部分;
END_IF;
Mem:=In;
注:Mem就是我们需要的中间存储位、 In被检测的变量
4、另外在西门子介绍SCl时着重强调了几项功能:
5、SCL同样支持多重背景调用功能。
6、对于STL能实现的复杂运算功能目前我还没发现SCL不能支持的,在没使用SCL之前的我程序基本都是用STL,使用了SCL之后同样很方便。
具体细节还请翻看编程手册.

B. 西门子博途SCL语言问题

OUT作为FC105,也就是SCALE的线性整定返回值。

而VAT则表明SCALE函数的执行状态,相当于ENO。

C. 西门子PLC中,取反指令NOT

赋值的符号为 :=,注意一定要用英文半角的标点符号,变量可以中文变量,先看最简单的一个触点控制线圈输出的语句:

常开触点控制线圈

常闭触点用取反指令NOT,其它的和常开触点一样

常闭触点控制线圈

串联触点中间用AND或者符号&进行连接

串联触点的写法

串联中的常闭触点,别忘了加NOT

一常开一常闭触点

并联触点指令为OR

两个常开触点并联

并联触点中用常闭依然要加NOT

一常闭一常开触点并联

串联和并联的混合输入,可以加入括号以区分,不然初学者会傻傻分不清逻辑

串联和并联的混合输入,可以加括号以区分

除了上面的,还有一种异或运算,符号为XOR,意思是两个值做异或运算,当两个值相同时,结果为0,当两个值不同的,结果为1,与梯形图比较可以写成如下所示:

异或运算

SCL语言很简单,如果有高级语言基础,基本一天就可以学会,三天精通,五天就可以随便写程序了,关键在于在坚持。
在TIA博途软件中,默认支持SCL语言,在建立程序块时可以直接选择SCL语言。

SCL语言类似计算机高级语言,如果你有C、Java、C++、Python这种高级语言的学习经历,再学习SCL就会容易很多。

在用SCL语言编程时,主要用IF...THEN/FOR/WHILE语句去构造条件、循环、判断这样的结构,在这些结构中再次添加指令,去实现逻辑判断。所有程序的编写都是在纯文本的环境下编辑,不像梯形图那么直观。

能把SCL运用的比较灵活的,大多是从IT转行过来做工控的人。本人就对SCL不太感冒,虽然一直在学习。

1、新建SCL语言功能块

在TIA博途软件中能直接建立SCL语言的功能块,如下图所示,只需要在语言下拉列表中选择SCL即可。

新建好程序块直接打开,会进入SCL的编辑环境,

2、SCL语言指令介绍

介绍指令之前先说一些,高级语言编写基础知识。

一行代码结束后要添加英文分号,表示改行代码结束。
所有代码程序都为英文字符,在英文输入法下输入字符。
可以添加中文注释,注释前先添加双斜杠,即://。这种注释方法只能添加行注释,段注释要插入一个注释段。
在SCL中变量需要在双引号内,定义好变量后软件能辅助添加。
每种高级语言的编写都有各自基础规则,建议大家多了解,不要在基础知识上犯错误。

D. PLC的SCL语言疑问

DB1000.POOL_int[48] := WORD_TO_INT(INT_TO_WORD(DB1000.POOL_int[48] + 1) & 16#7FFF);
INT_TO_WORD(DB1000.POOL_int[48] + 1)将数组中的数据+1,然后数据类型强制转换为WORD类型。
& 16#7FFF);将上述结果与16进制数据7FFF做与操作,实质就是将最高位置0.
最后将处理的数据转换为整型保存到[48]数组单元中。

BEGIN作为语句块的开始,后面跟个分号代表第一句语句为空语句,其等同于
BEGIN

SCL语言就是类似于Pascal的语言,其他品牌的PLC中称作ST语言,因为西门子的语句表叫做STL,为了避免混淆,因此叫做SCL。

E. 博途v15中怎样把scl程序转换成lad程序

不是说所有的PLC编程语言都可以互相转换
不要说SCL了,就算是STL都未必能转换回去
举个例子,你用LAD写一段起保停的程序,然后转换成STL,删掉NOP行
这时候程序功能没有发生任何改变,但是你会发现这段STL无法再转换回LAD
SCL有点接近C语言的编写习惯,就像IF语句就特别像,几乎一样
他和LAD不能互转

F. SCL没有源文件如何生成博途

SCL没有源文件生成博途方法:

在TIA博途中点击“项目移植”选项后,再选择STEP7源项目打开就可以生成博途了。

SCL(Structured Control Language)语言,也就是结构化控制语言,它其实和IEC标准制定的ST语言是一样的。S7-SCL 可以编译成 STL, 虽然其代码量相对于 STL 编程有所增加,但我们更关心的是程序结构和程序的总体效率。

类似于计算机行业的发展,汇编语言已经被舍弃,取而代之的是 C/C++等高级语言。S7-SCL 对工程设计人员要求较高,需要其具有一定的计算机高级语言的知识和编程技巧。

STL是STEP7时代推出的语言,它不是STRUCT TEXT LANGUAGE的缩写,所以它和ST语言完全没关系。

STL语言是一种汇编语言,是面向机器底层的语言,可以直接操作寄存器,可读性不强,和80C51单片机的机器语言是一个层面。所以它是一种低级语言,而ST和SCL都是中高级语言。

SCL源文件支持的文件格式:

S7-SCL 支持如下 STEP7 的块:OB,FC,FB,DB,UDT。在 S7 程序中,S7-SCL 块可以与其它STEP7 编程语言生成的块互相调用。

S7-SCL 可以被编译成 STL, S7-SCL 生成的块也可以作为库文件被其它语言引用。由于 S7-SCL 程序由 ASCII 文本构成,所以它非常容易被导入或导出。

G. 初学西门子PLC的SCL语言编程,在帮助文件中复制了一段SCL语言,编译后一直提示错误,求大神解答

FUNCTION_BLOCK FB20

VAR_INPUT

ENDVAL: INT;

END_VAR

VAR_IN_OUT

IQ1 : REAL;

END_VAR

VAR

INDEX : INT;

END_VAR

VAR_TEMP

CONTROL : BOOL;

END_VAR

BEGIN

CONTROL:=FALSE;

FOR INDEX:= 1 TO ENDVAL DO

IQ1:= IQ1 * 2;

IF IQ1 >10000 THEN

CONTROL = TRUE

END_IF

END_FOR

END

热点内容
安卓如何设置桌面返回键 发布:2025-02-06 13:58:15 浏览:48
bi可视化php 发布:2025-02-06 13:50:15 浏览:931
shell写脚本文件 发布:2025-02-06 13:47:32 浏览:231
健身器材脚本 发布:2025-02-06 13:46:36 浏览:856
怎么从手机里卸载存储卡 发布:2025-02-06 13:35:04 浏览:644
诛仙青云志2ftp 发布:2025-02-06 13:34:48 浏览:34
mill91编程 发布:2025-02-06 13:10:27 浏览:294
华为平板怎么储存服务器文件 发布:2025-02-06 12:49:21 浏览:482
php查询结果数组 发布:2025-02-06 12:31:05 浏览:717
怎样把照片压缩打包 发布:2025-02-06 12:15:19 浏览:498