西门子PLC-1200 SCL语言开发学习笔记 (一)
一、简介和背景
PLC一般使用梯形图开发,但是梯形图适合电工使用而不是程序员使用,对我们来说开发困难,门槛高,幸好PLC的开发标准还带了类pascal的高级语言,在西门子这里叫SCL语言,这对于我们程序员来说门槛就很低了。
要开发好复杂PLC逻辑,梯形图困难重重,市场上要价颇高,而使用SCL语言则非常合适处理复杂逻辑以及运算。
二、新建SCL程序块
在博图软件的项目视图中,便有添加新快,双击
推荐使用FB模块,便于存放变量,语言选择SCL
三、变量的创建和访问
在打开FB模块后,上方就是变量定义区
Input则是输入参数,Output是返回值或者理解为C# out关键字的输出变量,InOut则是类似Ref的既输入又输出的,Static变量才是我们可以保留的变量,Temp 相当于方法内的局部变量,这次执行过后会被重设
我们的代码会被放在一个方法块内
不用担心用Static后每次调用使用这个变量会冲突,每个使用它的地方都会新建一套数据块副本,相当于实例化一个类,调用实例方法,并非完全静态的变量。
要写代码当然要会访问各个能访问的变量,
FB里面定义的变量用#开头来访问
访问地址用%开头,
变量表里的变量相当于全局静态变量
我们给一些地址起了名字,既可以用 %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中如何处理