⑴ 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 文本构成,所以它非常容易被导入或导出。
⑵ s7-2500中scl编程中,如何输入变量
1、新建SCL语言功能块
在TIA博途软件中能直接建立SCL语言的功能块,如下图所示,只需要在语言下拉列表中选择SCL即新建好程序块直接打开,会进入SCL的编辑环境,2、SCL语言指令介绍
介绍指令之前先说一些,高级语言编写基础知识。
一行代码结束后要添加英文分号,表示改行代码结束。
所有代码程序都为英文字符,在英文输入法下输入字符。
可以添加中文注释,注释前先添加双斜杠,即://。这种注释方法只能添加行注释,段注释要插入一个注释段。
在SCL中变量需要在双引号内,定义好变量后软件能辅助添加。可。
⑶ 关于西门子的PLC中用SCL编程的请教
BIPOLAR := BIPOLA_IN;应该是BIPOLAR := BIPOLAR_IN;
如果再报错,你就点错误,然后查看它周围的名称是否写错了,你定义的和调用的名字不一致!
⑷ 利用西门子SCL怎么将一组数存入数组
输入连接。
SCL作为一种编程语言,可以实现LAD或者FBD所有的功能,大多数的指令都是相同的,只是在编辑器中的外形不同。只有一些指令使用是不太一样的。SCL特殊的指令有几种,读写存储器、转换操作、程序控制指令等等。在程序运行时无法更改运行次数。
⑸ 问一个问题:PLC中,在SCL编程时,如何让IF语句中,Then后面的两条语句连续执行加什么符号
SCL语言中,用BEGIN和END分别代替C语言中的“{”和"}",这样应该清楚了吧
比如,C语言这样写
main
{
int i,j,num;
if(num==0)
{
i=i+1;
j=j+1;
}
}
那么SCL就要这样:
BEGIN
I,J,NUM:INT;
IF NUM=0 THEN
BEGIN
I:=I+1;
J:=J+1;
END
END
⑹ 西门子PLC中的STL和SCL指令
SCL类似于高级语言Pascal、C之类,可以通过简单的语句实现复杂的功能,逻辑清晰,在复杂数据类型的处理上也非常方便,虽然理论上执行效率比STL低,但实际一般不会有明显的影响。
另外,在同一个FC或FB中,STL可以和梯形图混合使用,而SCL编写的FC或FB不能混合其他语言
⑺ 请问有没有学习SCL语言的专业书籍用于西门子PLC编程的资料!谢谢
1、最权威的资料其实是安装了scl软件包后附带的电子文档(pdf格式),英文版的,我当年就是一点点看下来的,不过看起来蛮累,毕竟不是教材,但是很权威;
2、西门子官方网站有scl教程,中文版,主要讲了一些学习的要点
3、市面上有本讲西门子stl/scl两种语言编程的书,是翻译老外的,讲的凑合吧,去网上书店搜搜
4、scl软件自带的help文件也可以看看,有网友把help文件翻译成了中文(chm格式),去相关工控论坛搜搜吧
再谈谈scl语言的学习,个人觉得掌握scl语法,如果有basic、c或者pascal高级语言基础的话,一周足矣,但是要真正掌握scl编程的精髓,还需要在实践中摸爬滚打:
1是结合plc的软、硬件实际情况,结合控制系统的要求
2是借鉴计算机高级语言编程的思想,尤其是结构化编程、面向对象编程的思想
⑻ 在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之后同样很方便。
具体细节还请翻看编程手册.
⑼ 西门子SCL语言编程 之 <多重背景 >
楼主,虽然我没有细看你的内容,但是,还是帮你定下!我有点小小建议:1:在使用SCL编程的时候别带上“复杂的算法”之类的字样,SCL是门语言。它可以做到LAD里面的任何事情,并且,你所说的调用DB的问题,在本质上不存在节省内存,顶多帮你节省了DBX中的X的号码。2:你程序上一些输入输出,以及变量,都没有在取名上给予辨别,换言之,我就是看你的取名很累,才没有看下去。真正从事模块化编程人员,都会在一些变量取名上就辨认出什么类型等。这两点就是建议,没有指正或者批评。我从事SCL语言程序5年,得出的仅仅是个人总结而已。对于SCL难易:SCL本事来说,对于没有受过高等教育而直接从事电气人员来说的确有点难。但是有过Windows计算机编程语言基础的人来说,的的确确简单了许多。(我相信大多数从事控制类的人员都会有编程基础)如果一个程序员不光从事PLC工作,还要从事其他工控作业的人员用SCL反而轻松和自在,因为习惯了IF Then这个模式。有过SCL编程多年的老手,欢迎批评和交流
⑽ 使用SCL语言编程时,如何对ANY类型的虚参赋值
好象这个功能不能实现。用SCL里的指针类型都没有多少意思,和STL里完全不同。我原来也为这个问题困惑,到现在也没有找到答案。