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

西门子PLC-1200 SCL语言开发学习笔记 (一)一、简介和背景PLC一般使用梯形图开发,但是梯形图适合电工使用而不是程序员使用,对我们来说开发困难,门槛高,幸好PLC的开发标准还带了类pascal的高级语言,在西门子这里叫SCL语言,这对于我们程序员来说门槛就很低了。要开发好复杂PLC逻辑,梯形图困难重重,市场上要价颇高,而使用SCL语言则非常合适处理复杂逻辑以及运算。二、新建SCL程序块在博图软件的项目视图中,便有添加新快,双击推荐使用FB模块,便于存放变量,语言选择SCL三、变量的创建和访问在打开…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一、简介和背景

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

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

 

二、新建SCL程序块

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

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

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

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

 

三、变量的创建和访问

 

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

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

 

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

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

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

 

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

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

访问地址用%开头,

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

 

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

 

 

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

我们给一些地址起了名字,既可以用 %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中如何处理

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/185299.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java判断对象是否为空的方法:isEmpty,null,” “

    Java判断对象是否为空的方法:isEmpty,null,” “今天修改辞职同事遗留的代码才发现这个问题,不能用isEmpty来判断一个对象是否为null,之前没在意这个问题,在报了空指针之后才发现这个问题。查了一下关于判断为空的几个方法的区别,这里做一个简单的总结:null一个对象如果有可能是null的话,首先要做的就是判断是否为null:object==null,否则就有可能会出现空指针异常,这个通常是我们在进行数据库的查询操作时,查询结果首…

    2022年6月13日
    24
  • latex的参考文献写法标准_参考文献举例

    latex的参考文献写法标准_参考文献举例使用Latex撰写论文时,通常会遇到参考文献格式问题,下面我将与大家分享Latex参考文献规范写作。 1、建议使用bib文件编写Reference这样可以减少格式、空格和标点符号的错误。 Bibtex使用方法简介:新建一个空白文本文档,把后缀名改成bib即可,比如TIP.bib; 用TexWorks打开文件,加入你想要引用的文章,有一个简便的添加的方式是使用百度/谷歌…

    2025年9月3日
    21
  • EnableEventValidation启用事件验证

    EnableEventValidation启用事件验证根据出错页面给出的提示消息可以知道,默认情况下是启用了事件验证的,在Aspx页HTML部分的Page指令处添加如下属性,就可以在页面回发时禁用事件验证<%@PageLanguage=”C#”EnableEventValidation=”false”.%>分析:出现这个错误一般是因为在客户端调用了js代码,改写了页面控件中的值,而通过postback再次requ…

    2022年7月24日
    14
  • Linux文件系统类型[通俗易懂]

    文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构; 即在磁盘上组织文件的方法。也指用于存储文件的磁盘或分区一个分区或磁盘能作为文件系统使用前,需要初始化,并将记录数据结构写到磁盘上。这个过程就叫建立文件系统 种类:1 ext2与ext3是linux专门设计的硬盘文件系统一般称为扩展文件系统。Ext3增加了日志记录功能。fdisk 分区在终端会显示打印信息   mkfs.ext4 /de…

    2022年4月6日
    58
  • oracle insert 将一张表数据插入另外表中[通俗易懂]

    oracle insert 将一张表数据插入另外表中[通俗易懂]将一张表的数据插入两外张表以表B的数据插入表A,表B有多少符合条件的数据,表A就插入多少条数据如表B符合条件有10条数据,表A也会添加10条数据case1两张表的结构完全一样insertintotableAselect*fromtableBcase2,两张表的结构不一样,只获取表B中符合条件的一些列的数据insertintot

    2022年7月17日
    13
  • Field XXX in XXXX required a bean of type XXXX that could not be found

    Field XXX in XXXX required a bean of type XXXX that could not be found

    2022年4月2日
    59

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号