SIEMENS宁波市西门子(授权)中国总代理-西门子华东区一级总代理商

供应商
广东湘恒智能科技有限公司
认证
变频器
西门子代理商
触摸屏
西门子一级代理
伺服电机
西门子一级总代理
联系电话
18126392341
手机号
15267534595
联系人
梁涛
所在地
惠州大亚湾澳头石化大道中480号太东天地花园2栋二单元9层01号房(仅限办公)(注册地址)
更新时间
2024-04-28 09:10

详细介绍

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

stl是step7时代推出的语言,它不是struct textlanguage的缩写,所以它和st语言完全没关系。stl语言是一种汇编语言,是面向机器底层的语言,可以直接操作寄存器,可读性不强,和80c51单片机的机器语言是一个层面。所以它是一种低级语言,而st和scl都是中gaoji语言。


【二】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 语言或者gaoji编程语言非常熟悉,可能此问题就非常容易解释。许多 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 表示没有写保护)。


西门子一级总代理,代理商,变频器,伺服电机,PLC

展开全文

我们其他产品
我们的新闻
咨询 在线询价 拨打电话