​前言:

使用梯形图编写程序时,博途编辑器是通过网络段,把程序分成一段一段的,编辑器可以插入若干个网络段,每一个网络段可以有各自的注释。

而SCL是文本语言,不分网络段(在LAD/FBD语言内增加SCL的除外),这就需要需要用其他的方法来,解决程序分段的问题。

把SCL划分的合理且清晰,我们可以使用注释代码折叠指令划分的功能进行。

有时很难在 LAD(梯形逻辑)或 FBD(功能块图)中编写 PLC 代码。特别是,如果你必须做一些数学工作或批量操作。

在这些情况下,您可以轻松使用 SCL/ST(结构化控制语言/结构化文本)。

在 SCL 中编写您的第一个 TIA 代码:

步骤 1 – 创建或打开 TIA 项目

就像编程 LAD 或 FBD 一样,需要创建或打开带有 PLC 的项目进行编程。所有SIMATIC PLC(S7-300、S7-400、S7-1200 和 S7-1500)都支持 SCL 。

在本例中,我将使用 S7-1515-2 PN,但它也适用于其他 S7-1500 或 S7-1200 PLC。

步骤 2 – 添加 FB/FC

在项目打开并且有一个 PLC  可用后,我们可以添加一个功能 [FC] 或一个功能块 [FB]。FC和FB的区别在于存储能力。FB 可以存储在 PLC 循环后仍然可用的数据。在我们的例子中,我们只需要一个 FC。

双击“PLC/程序块”文件夹中的“添加新块”。现在“添加新块”对话框打开。在这里我们可以选择要创建的块类型,在我们的例子中是 FC。

选择块类型后,我们必须选择要编程的语言。下拉列表将显示与 PLC 类型相结合的所选块类型可用的所有可能的编程语言。我们当然会使用“SCL”。

如果需要,您还可以在附加信息栏的下方添加附加信息,例如作者、版本等。现在我们可以通过在对话框中单击确定来创建块。

第 3 步 - 修改块接口

创建块后,我们可以修改FC的Interface。在我们的例子中,我们将输入一个 [Array[0..5] of INT] 类型的输入、一个 [INT] 类型的输出和两个 [INT] 类型的临时变量。

注意:在 FB 中还显示了一个静态部分,因为它能够存储比实际 PLC 周期更长的数据。

步骤 4 – 输入 SCL 代码

在下一步中,我们输入代码来确定数组元素的最大值。代码将从索引 0 到 5 遍历数组,并比较实际值是否大于“tempMax”值。最后,我们将获得数组中包含的最大值。

在第一行,我们将“tempMax”设置为一个定义的值。在这种情况下为零。

在第三行,我们开始“FOR”循环。这将使用“tempCount”变量来存储我们循环的实际索引。它在开始时设置为零,并将运行直到达到五。所以我们将循环运行六次(0->1->2->3->4->5)。“FOR”循环的代码由第三行的“FOR ...”语句和“END_FOR;”封装。第七行的声明。

此代码块包含一个“IF”块,如果语句“#In[#tempCount] > #tempMax”将返回“TRUE”并且实际“maxTemp 小于数组的值”,则该块将仅处理其内部代码索引为#tempCount 的元素。

由于智能感知,TIA 门户在键入代码时会提供建议。此外,您在文本编辑器区域的顶部有一个最喜欢的指令列表,就像在其他语言的编辑器中一样。您可以在此处通过从说明选项卡中拖动其他说明来添加其他说明。

步骤 5 – 提供一些数据

为了能够为我们的程序提供一些值,我们必须创建一个全局数据块 [DB] 来提供一些数据,就像我们为 FC 所做的那样。

我们还将输入一些启动数据,这些数据在 PLC 启动时提供给全局 DB。

步骤 6 – 在 OB1 中调用 FC

要在我们的 PLC 中使用 FC,我们可以调用 Main [OB1] 中的块并为其提供来自“dbGlobal”的值。添加调用后,我们可以编译程序代码并将其加载到我们的 PLC 中或使用 PLCsim 进行模拟。

第 7 步 – 测试

连接到设备(通过选择 PLC 并单击“go online”)并激活块中的观察模式后,我们可以检查程序的行为。

我们可以创建一个监视表来观察和修改值来测试我们的代码。在“修改值”栏中输入要设置的新值,然后单击工具栏中的设置按钮。新值将被设置到变量中,代码将使用新值进行处理。

注意:请记住,由 PLC 程序设置的变量将在每个新循环中覆盖手动设置值。

您可以修改显示格式,例如以十六进制或二进制表示法显示变量,如  16#09 或 2#0000 1001。所以它更容易阅读,例如“状态词”。

步骤 8 – 更通用的方法

在块接口处,可以定义具有可变限制的输入数组,以便为具有不同长度数组的块提供更好的可重用性。在这里,我们必须在 FC 处调整接口并添加代码来确定数组的下限和上限。它也可以用多维数组来做到这一点。

注意:请记住,此功能仅在较新的 PLC (1200/1500) 中可用。

利弊

优点 不足
轻松编写复杂的代码 难以跟踪信号序列(不用于故障安全 PLC 编码的原因)
适合大规模操作 糟糕的逻辑概述
开关盒的简单编程 有时难以阅读

注意:您可以自由使用最适合您需求的编程语言。在之前的课程中,我们看到在 FBD 代码中使用 SCL 网络。例如,在 SCL 块中编写复杂代码和在 FBD 块中输出的互锁部分。

西门子PLC—用 SCL 编写你的第一个 TIA 代码相关推荐

  1. ab st语言编程手册_西门子PLC编程SCL和LAD谁才是王者?一起讨论一下

    现在很多大品牌的中高级 PLC 都支持国际电工委员会 IEC61131 标准中规范的五种编程语言的混合编程,即梯形图(LD).结构化文本(ST).流程图(SFC).指令表(IL)和功能块(FB).在这 ...

  2. 西门子scl语言和c语言,西门子PLC的SCL语言与STL语言比较一下-工业支持中心-西门子中国...

    1. STL有点类似汇编语言,和机器码对应,无论哪种语言写的PLC程序都可以转换成STL查看,所以掌握基本的STL指令和语法是很有帮助的.另外STL直接操作寄存器,实现同样功能时可以减少运算量和寄存器 ...

  3. 西门子PLC的SCL语言如何应用定时器接通延迟

    在西门子PLC中利用STEP7软件编程的时候,想实现延时接通功能,通常会用到S_ODT定时器,因为这个最简单.在SCL中同样可以也将这个简单的延时接通定时器使用上,只不过没有像在LAD梯形图中编程那么 ...

  4. 西门子plc梯形图转换c语言,西门子PLC语言SCL结构文本如何转换成LAD梯形图-工业支持中心-西门子中国...

    可以肯定的告诉你说转换不成LD,但是可以转换成STL,如果熟悉STL的话可以转成STL对程序进行分析. 回答者: xkqxwhz - 高级技术员&nbsp&nbsp第7级 2013-1 ...

  5. 西门子 PLC 入门 :如何模拟PLC程序

    ​ 前言: 在本文(第 3 部分)中,您将学习如何模拟上一部分编写的 PLC 程序. 模拟 PLC 程序是我们将程序下载到工厂中的实际 PLC 并使用真实设备和设备对其进行测试之前的最后一步.另一方面 ...

  6. 怎样安装西门子PLC

    安装西门子PLC主要包括以下几个步骤: 1. 确定安装位置:首先需要确定西门子PLC的安装位置,应该选择一个干燥通风.无尘的环境,并且要确保有足够的空间安装和维修. 2. 安装基座:安装PLC基座时需 ...

  7. 西门子水处理1200PLC程序模板 Plc程序包含功能块,功能块为SCL编写 含模拟量换算功能块

    SIEMENS/西门子水处理1200PLC程序模板 (1)西门子触摸屏程序,博图V16学习程序,可仿真实验 (2)Plc程序包含功能块,功能块为SCL编写,(要有一定基础才能读懂) (3)含模拟量换算 ...

  8. 西门子PLC动态密码程序,1200PLC和1500PLC通用,催款程序,动态密保,底层使用SCL写的

    西门子PLC动态密码程序,1200PLC和1500PLC通用,催款程序,动态密保,底层使用SCL写的,详细介绍了程序编写的思路和画面操作步骤,非常值得拥有

  9. scl语言用plc脉冲做定时器_西门子PLC中使用SCL语言编程的技巧

    中使用 SCL 语言编程的技巧 前言:两年半前我就在工控网上发表了有关 SCL 编程的知识 << 在 S7300400 型 PLC 中使用高级语言编程 >>, 但发表完 后,即 ...

最新文章

  1. 你稀里糊涂学的算法复杂度,原来这么简单!
  2. 线程同步——内核对象实现线程同步——等待函数
  3. python 不得不知的第三方库以及常用安装包
  4. C#原型模式之深复制实现
  5. C专家编程复习摘要一
  6. 复旦大学在职MBA项目2011年度学费调整通知
  7. ajax请求头cookies中传递sid,跨域请求单点登录,登录成功,但是在controller中获取的cookie与浏览器中不一致,请大神指点一二。^_^...
  8. 虚拟机中加载物理机的硬盘和分区
  9. U-Mail邮件服务器详解邮件延时
  10. 运动会管理系统的需求调研会纪要
  11. MATLAB车牌识别原理[大白话]
  12. 树梅派烧录Lineage OS
  13. 微信小程序点击更改样式-点击获得下划线
  14. ——大牛很通俗地介绍《信号与系统》
  15. IT人必须掌握的面试技巧
  16. 【PyQt】PyQt+百度API实现图像识别应用(附代码)
  17. html设置手写输入,手写登陆页面
  18. 基因组序列genbank格式和fasta格式批量下载
  19. 同时查询中通快运多个单号物流,并分析派件时效
  20. 最短路径之迪杰斯特拉(Dijkstra)算法

热门文章

  1. 网管软件Hyperic HQ监控Cisco CatOS
  2. vue 一直加载_vue加载中loading提示信息(iView Spin)
  3. ZZULIOJ.1123: 最佳校友
  4. C语言521短整型输出,printf 格式输出
  5. mysql筛选两个表中的不同数据
  6. IE浏览器下载APK变成zip的解决方案
  7. java计算机毕业设计西安财经大学校园一卡通管理系统源码+lw文档+系统+数据库
  8. xp系统打开itunes显示服务器失败,win7系统打开iTunes显示Apple Mobile Device Service无法启动怎么解决...
  9. java集合详解之ArrayList
  10. 羽毛球正反手握拍动作要领[羽球入门]