PLC的ST编程方式--文本编程,简洁啊

2023-05-16

一、ST语言介绍

发现网上PLC的ST编程资料极少。不过,道理也很简单,因为做PLC的基本都是电气出身,梯形图类似于继电器逻辑,比较接近他们的习惯。。。ST属于文本编程,符合程序员的习惯,兼职做plc的程序员极少,原因你们懂的。(我是个例外,无奈脸)。

由于我只用过三菱的PLC,下面的使用,全以三菱PLC为依据。其他品牌的若有出入,勿喷,欢迎补充

下面是一个ST程序的例子:当X0接通时,打开Y0。

IF X0 THEN
    Y0 := TRUE;
END_IF;

很像C语言对不对?不过呢,建议写成下面这个样子(更简洁):

SET(X0,Y0);

set,rst都是函数,传入参数就可以了,可以看帮助。(直接给答案吧:第一个参数时,触发条件,第二个参数是操作对象)

二、T形图

上面的例子这么写:

看到没,其实差不多。但是呢,当代码长了之后,就会发现:

1)梯形图臃肿,一页屏幕显示不了多少语句
2)梯形图只能用软元件名,不能自己取一个有意义的名字。(可以设置标签,但是只是输入时方便。写完后,显示不了标签);

而ST语言则可以,而且鼠标停靠时,可以显示注释。

三、编程工具

T形图:GX Developer、GX Works2

ST语言:GX Works2

建议使用GX Works2!因为它比较新,支持多种编程方式:程序员风格的ST语言,电气工程师风格的T形图、流程图风格的SFC、门电路风格的FBD。GX Developer是老古董了

四、开始

1.创建工程

2.创建标签

标签就是给软元件取名字,有名字,编程才流畅啊,谁记得那么多点编号啊。有全局标签、局部标签,顾名思意,相当于全局变量/局部变量嘛。

要先设置软元件,回车就会自动帮你填好。然后再设置标签名。

3.开始写代码

先写一个最简单的

4.设置通讯方式

5.写入PLC

先编译,编译时会检查程序是否有错误。(相当于T形图中的“转换”)

再写入

接下来,再PLC上测试就好了。接通X0,看看Y0是不是会亮(PLC每个电位都有指示灯的)。

如果没有PLC呢?或者怕写入PLC把东西搞烧了咋办呢?嗯,可以模拟嘛!见第6节-PLC模拟

6.PLC模拟

启动之后,是下面这个样子

我们把急停信号打开,看看报警输出会不会打开

注意:

因为这是模拟PLC,才可以通过软件改变输入信号。如果是接PLC,输入信号只能通过外部接线来改变。

五、补充一点发现

发现一:

1)将ST语言写入PLC,然后再读出来(顶部菜单-在线-PLC读取),ST工程无法读取,只有当工程是梯形图工程时才能读取。

2)而且,不管哪种编程方式写的,写到PLC,再读出来的都是梯形图。

好吧,原来不管是写入时,是转成T形图再写进入的。

发现二:

这样的例子,让Y0等于X0。

写法1:

IF X0 THEN
    Y0 :=TRUE;
ELSE
    Y0 :=FALSE;
END_IF;

写法2:

SET(X0,Y0);
RST(NOT X0,Y0);

写法1虽然更直白,但是语句更多,写入到PLC的梯形图很复杂(如下图)。所以建议用第二种风格

而第2种写法,则是下面这样的,这才像是人写的嘛。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PLC的ST编程方式--文本编程,简洁啊 的相关文章

  • 串口拓展

    今天桌子下面找出一个破电路板看到一颗芯片GM8125 xff0c 这个芯片主要功能就是拓展串口 GM8125可以将一个全双工的标准串口扩展成5个标准串口 xff0c 并能通过外部引脚控制串口扩展模式 xff1a 单通道工作模式和多通道工作模
  • HttpUtils

    package com rs zero crc common http import com rs zero crc modulars common constants SysConstantConf import com xiaoleil
  • 【转】C语言中的位域、字节序、比特序、大小端

    1 比特序 位序 bit numbering bit endianness 我们知道一个字节有8位 xff0c 也就是8个比特位 从第0位到第7位共8位 比特序就是用来描述比特位在字节中的存放顺序的 通过阅读网页http en wikipe
  • 位定义方法定义寄存器

    寄存器 位域 定义的语法格式 xff1a Struct 位域结构名 类型说明符 位域名1 xff1a 位域长度 类型说明符 位域名2 xff1a 位域长度 类型说明符 位域名n xff1a 位于长度 从右到左申明的 位域的申明不能横跨两个字
  • Qt 模拟一个导航定位系统

    版权声明 xff1a 本文为博主原创文章 xff0c 遵循 CC 4 0 BY SA 版权协议 xff0c 转载请附上原文出处链接和本声明 本文链接 xff1a https www cnblogs com lihuidashen p 115
  • RESTful Api 身份认证中的安全性设计探讨

    REST 是一种软件架构风格 RESTful Api 是基于 HTTP 协议的 Api xff0c 是无状态传输 它的核心是将所有的 Api 都理解为一个网络资源 将所有的客户端和服务器的状态转移 xff08 动作 xff09 封装到 HT
  • 在STM32 MDK实现类似__attribute__((__packed__))效果

    attribute 是GNU C对标准C语法的扩展 xff0c 是GNU C的一大特色 xff0c 可以用于设置函数的属性 xff0c 变量的属性 xff0c 类型的属性 在STM32 MDK实现类似效果 xff1b 实验数据如下 xff1
  • 那些年搞不懂的多线程、同步异步及阻塞和非阻塞(一)---多线程简介

    1 进程和线程的概念 进程 xff1a 运行中的应用程序称为进程 xff0c 拥有系统资源 xff08 cpu 内存 xff09 线程 xff1a 进程中的一段代码 xff0c 一个进程中可以有多段代码 本身不拥有资源 xff08 共享所在
  • python爬虫登录保持及对http总结

    前言 这几天一直看python爬虫登录保持 实现接口太多 xff0c 太乱 xff0c 新手难免云山雾罩 各种get post xff0c 深入理解一下 xff0c 其实就是由于http的特性需要这些操作 http是一种无状态 不保存上次通
  • ROS CAN总线设备接入(一)Linux动态库的显式调用

    前提 xff1a xff08 1 xff09 xff0c 如果在libpcan安装正常的话 xff0c 那么可以用以下命令查找到libpcan so ls usr lib libpcan 查找到方可进行api载入 xff08 2 xff09
  • SQL Server 2012企业版和标准版的区别

    关于使用Microsoft SQL Server 数据库的公司一般会有疑问 xff0c 企业版数据库和标准版数据库的区别在哪 xff1f 如果采购企业版的价格和标准版的价格相差很大 xff0c 从多方资料查询发现 xff0c 我认为最主要的
  • 查询SQL SERVER 数据库版本号脚本语句

    数据库直接执行此语句即可 select 64 64 version 示例 xff1a Microsoft SQL Server 2014 12 0 2000 8 X64 Feb 20 2014 20 04 26 Copyright c Mi
  • SQL SERVER 还原误操作导致还原无法停止,处理办法

    昨天遇到运行库不知道单位哪个小伙子 xff0c 把数据库还原了 xff0c 导致单位业务全部瘫痪 xff0c 主数据库一直显示正在还原 xff0c 真的是不敢动 xff0c 经过多方寻找 xff0c 找到此脚本 数据库还原日志 xff0c
  • Docker安装及部署实例.Net Core

    1 什么是Docker Docker 是一个开源的应用容器引擎 xff0c 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中 xff0c 然后发布到任何流行的 Linux 机器上 xff0c 也可以实现虚拟化 容器是完全使用沙箱机制
  • 将html格式的内容转换成纯文本格式

    最近做的一个东东 xff0c 想要去除掉保存的字符串内容的所有html格式 xff0c 也就是只取纯文本 xff0c 从网上查了些相关资料 xff0c 以及正则表达式的用法 xff0c 有一个方法向大家推荐 xff0c 基本去除了我想要去除
  • 待解决:PDF header signature not found

    转载于 https www cnblogs com ITGirl00 p 3531475 html
  • 从统计学看线性回归(2)——一元线性回归方程的显著性检验

    目 录 1 2 的估计 2 回归方程的显著性检验 t 检验 xff08 回归系数的检验 xff09 F 检验 xff08 回归方程的检验 xff09 相关系数的显著性检验 样本决定系数 三种检验的关系 一 2 的估计 因为假设检验以及构造与
  • TypeError: unsupported operand type(s) for +: 'float' and 'decimal.Decimal'

    TypeError unsupported operand type s for 43 39 float 39 and 39 decimal Decimal 39 浮点型和双精度类型 相加报错 from decimal import Dec
  • 7.模块化封装Storage实现缓存数据持久化

    1 模块化封装Storage实现缓存数据持久化 1 在src目录下新建目录model xff0c 在model目录下新建js文件取名storage js var storage 61 set key value 设置为本地缓存方法 loca
  • 8.使用scss,创建组件,scoped局部作用域

    1 使用scss scss是能让css从属关系看起来更加直观 在项目目录下运行安装命令 xff1a cnpm install node sass save dev cnpm install sass loader save dev 然后在项

随机推荐