一、简介和背景

PLC一般使用梯形图开发,但是梯形图适合电工使用而不是程序员使用,对我们来说开发困难,门槛高,幸好PLC的开发标准还带了类pascal的高级语言,在西门子这里叫SCL语言,这对于我们程序员来说门槛就很低了。

要开发好复杂PLC逻辑,梯形图困难重重,市场上要价颇高,而使用SCL语言则非常合适处理复杂逻辑以及运算。

二、新建SCL程序块

西门子PLC-1200   SCL语言开发学习笔记 (一)-LMLPHP

在博图软件的项目视图中,便有添加新快,双击

西门子PLC-1200   SCL语言开发学习笔记 (一)-LMLPHP

推荐使用FB模块,便于存放变量,语言选择SCL

三、变量的创建和访问

在打开FB模块后,上方就是变量定义区

西门子PLC-1200   SCL语言开发学习笔记 (一)-LMLPHP

Input则是输入参数,Output是返回值或者理解为C# out关键字的输出变量,InOut则是类似Ref的既输入又输出的,Static变量才是我们可以保留的变量,Temp 相当于方法内的局部变量,这次执行过后会被重设

我们的代码会被放在一个方法块内

不用担心用Static后每次调用使用这个变量会冲突,每个使用它的地方都会新建一套数据块副本,相当于实例化一个类,调用实例方法,并非完全静态的变量。

要写代码当然要会访问各个能访问的变量,

FB里面定义的变量用#开头来访问

访问地址用%开头,

西门子PLC-1200   SCL语言开发学习笔记 (一)-LMLPHP

西门子PLC-1200   SCL语言开发学习笔记 (一)-LMLPHP

变量表里的变量相当于全局静态变量

我们给一些地址起了名字,既可以用 %I0.0 也可以用Btn1,最终都会变成”Btn1”。

访问别的实例的DB块中的变量则使用DB快的名字在用 . 进行访问,比如第一张图中块的 "_2_DB_1".BtnPress

四、变量类型

大部分的变量类型大家基本都认识了,比较搞得是时间类型,简单说下

Time 相当于TimeSpan,表示一段时间 比如 T#5s表示5秒,再比如 T#10h2m

LTime 长的Time,表达的时间更长

Date 日期

Date And Time DT类型,也就是datetime

Time Of Day TOD 就是时间部分了

博图的帮助中也提供了详细的解释,帮助文档也是比较全面的

结束:

下期讲解在梯形图中重要且复杂难用又难以组合的,定时器,在SCL中如何处理

05-07 15:46