描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302644811丛书名: 电子信息科学与技术丛书
IEC 61131-3标准如火如荼,已得到广泛应用,该标准不仅适用于PLC,更适用于DCS、SCADA、CNC,以及基于PC的其他工业控制产品。几乎所有的主流PLC厂商都已经推出了基于IEC 61131-3标准的产品,如西门子、施耐德、三菱、欧姆龙、倍福、ABB、松下、基恩士、台达、汇川等。作为IEC 61131-3标准指定的五种PLC标准编程语言之一,ST(Structured Text)语言的应用并不是十分成熟,主要原因是有关ST语言的参考文献零散地分布于各家的PLC编程手册中,不成体系,不便于读者系统学习。为此,笔者根据自身的工程实践经验编写了本书,希望为广大读者抛砖引玉,让ST语言真正成为广大电气工程师的PLC编程利器。
本书特色
? 从电气从业人员熟悉的梯形图入手讲解,便于理解,过渡自然;
? 介绍ST语言编程的同时,详细介绍了PLC开发的基础知识;
? 注重理论联系实践,书中所有案例都以工程实际项目为基础;
? 兼顾不同品牌PLC的差异,并系统地归纳总结,举一反三。
程序代码: 可到清华大学出版社网站本书页面(或“人工智能科学与技术”微信公众号)下载。
本书从电气从业人员熟悉的梯形图入手,逐步引申,详细介绍了基于IEC61131-3标准的可编程控制
器(PLC)如何从使用梯形图编程过渡到使用结构化文本(ST)语言编程。
本书讲解由浅入深,以施耐德电气基于 CODESYS的编程软件 SoMachineV4.3为主要工具,介绍如
何通过ST语言实现梯形图最基本的功能,以及 ST 语言的基本运算、基本语句、函数与功能块的调用,并
结合大量实例,详细阐述 PLC基于ST语言的编程技术以及结构化编程思想。同时,本书以西门子博途和
三菱 GX Works3为辅助工具,重点介绍ST语言跨平台移植时的注意事项,以及不同 PLC之间ST语言的
细微差别。PLC编程是一项系统工程,仅仅介绍编程语言是不够的,因此本书还会穿插介绍一些与 ST 语
言编程有关的 PLC系统知识。ST语言具有与平台无关的天然属性。因此,只要符合IEC61131-3标准,
无论什么品牌的 PLC,本书都适用,例如西门子、施耐德、倍福、三菱、欧姆龙、基恩士、汇川、和利时、伦茨以
及 ABB和 KEBA 等,不同品牌的 PLC之间仅有细微的差别。
本书适合没有计算机基础,特别是没有计算机高级语言基础的电气从业人员,帮助他们从熟悉的梯形
图开始入门并进阶到ST语言编程。
第1章ST语言基本介绍
1.1ST语言简介
1.1.1ST语言的诞生背景
1.1.2ST语言的基本特点
1.2ST语言与SCL以及STL的关系
1.3ST语言的特点
1.3.1良好的跨平台移植性
1.3.2方便的数学计算
1.3.3轻松实现复杂算法
1.3.4轻松进阶计算机高级语言
1.3.5方便的注释
1.4初学者对ST语言的误解
1.4.1与英语相关
1.4.2ST语言不易理解
1.4.3需要很深的PLC基础
1.4.4工具和操作的继承
1.4.5ST语言维护麻烦
1.5书中使用的ST语言开发环境
1.5.1施耐德SoMachine
1.5.2三菱GX Works2与GX Works3
1.5.3西门子TIA Portal
1.6其他PLC的ST语言开发环境
1.6.1台达
1.6.2汇川
1.6.3英威腾
1.6.4禾川
1.6.5步科
1.6.6松下
1.6.7欧姆龙
1.6.8基恩士
1.6.9施耐德
1.6.10罗克韦尔
第2章ST语言基础知识
2.1IEC 61131标准与PLCopen组织
2.1.1标准的诞生背景
2.1.2标准的组成
2.1.3PLCopen组织
2.2进制
2.2.1二进制
2.2.2八进制
2.2.3十进制
2.2.4十六进制
2.3变量
2.3.1变量的意义
2.3.2变量属性
2.4数据类型
2.4.1数据类型的意义
2.4.2标准数据类型
2.4.3扩展数据类型
2.4.4自定义数据类型
2.5数据类型转换
2.5.1数据类型转换的意义
2.5.2隐式转换
2.5.3显式转换
2.6程序组织单元
2.6.1软件模型
2.6.2初步认识功能和功能块
2.6.3SoMachine中常用的功能块和函数
第3章ST语言基本语法
3.1ST语言的基本规则
3.1.1不区分大小写
3.1.2变量必须先定义再使用
3.1.3使用英文输入法
3.2ST语言的基本组成
3.2.1行号
3.2.2注释
3.2.3空语句
3.2.4语句部分
3.3赋值语句
3.3.1语句组成
3.3.2注意事项
3.4赋值与相等
3.5编写技巧和方法
3.5.1缩进与对齐
3.5.2快捷键
3.5.3注释
3.5.4空语句和注释符号
3.5.5变量命名
第4章逻辑运算与IF语句
4.1BOOL型逻辑运算
4.1.1AND
4.1.2OR
4.1.3NOT
4.1.4XOR
4.2无符号数的逻辑运算
4.2.1运算方法
4.2.2BOOL型与WORD型的逻辑运算
4.3IF…END_IF语句
4.3.1执行流程
4.3.2IF…END_IF语句的应用
4.4IF…ELSE…END_IF语句
4.5综合应用
4.5.1“启保停”的ST语言实现
4.5.2IF语句与逻辑运算语句
4.5.3置位与复位
4.5.4复杂梯形图
4.5.5基本电机控制
4.5.6互锁控制
4.5.7变频器多段速控制
4.5.8多轴状态判断
4.6西门子博途中的逻辑运算
4.7使用IF语句的注意事项
第5章边沿触发
5.1基本概念
5.1.1上升沿
5.1.2下降沿
5.1.3西门子博途中的边沿触发
5.2边沿触发与逻辑运算的综合应用
5.2.1启动保持停止
5.2.2单按钮启停
5.2.3逻辑运算实现边沿触发
5.3注意事项
第6章比较运算
6.1比较运算符
6.1.1梯形图中的比较运算
6.1.2比较运算的注意事项
6.2各数据类型的比较运算
6.2.1BOOL型
6.2.2数值型
6.2.3时间型
6.2.4字符串型
6.3连续比较运算
6.4比较运算与边沿触发的综合应用
6.4.1监控变量值的变化
6.4.2密码锁
第7章数学运算
7.1加、减、乘、除运算
7.1.1加法运算
7.1.2减法运算
7.1.3乘法运算
7.1.4除法运算
7.1.5取余运算
7.2加、减、乘、除运算的应用
7.2.1计算设备的持续运行时间
7.2.2伺服计算
7.2.3生成随机数
7.2.4模拟量计算
7.2.5设备车速计算
7.2.6码垛与拆垛
7.2.7配方计算
7.2.8高低字节交换
7.2.9字节组合成字
7.3函数运算
7.3.1乘方
7.3.2绝对值
7.3.3三角函数
7.3.4对数
7.3.5平方根
7.4如何调用函数
第8章运算优先级
8.1优先级的意义
8.2优先级的应用
8.2.1不能进行连续比较运算
8.2.2启保停程序中的括号
第9章IF语句的嵌套
9.1嵌套的执行流程
9.2嵌套的应用
9.2.1伺服电机的控制
9.2.2密码锁
9.3嵌套的注意事项
9.4IF…ELSIF…END_IF语句
9.4.1执行流程
9.4.2IF…ELSIF…END_IF语句的应用
第10章定时器与计数器
10.1定时器
10.1.1定时器的调用
10.1.2应用定时器的注意事项
10.2计数器
10.3定时器和计数器的应用
10.3.1累积定时器
10.3.2星形三角形启动
10.3.3第三方设备写入定时器定时时间
10.4如何调用功能块
10.5西门子博途中的定时器调用
10.5.1调用方法
10.5.2如何减少背景数据块
10.6三菱GX Works3中的函数和功能块调用
10.6.1函数调用
10.6.2功能块调用
第11章功能块和函数
11.1功能块和函数的意义
11.2功能块与函数中的变量
11.2.1形参和实参
11.2.2变量属性
11.2.3如何区分功能块和函数
11.3函数的实质
11.3.1静态变量与临时变量
11.3.2自定义函数的使用
11.4CODESYS中常用系统函数介绍
11.4.1字符串处理函数
11.4.2数据类型转换函数
11.5功能块的实质
11.5.1实例名的意义
11.5.2功能块的特征
11.5.3如何减少功能块的调用
11.6功能块和函数在编程中的应用
第12章循环语句
12.1循环的实质
12.2FOR循环语句
12.2.1FOR循环执行流程
12.2.2使用FOR循环的注意事项
12.3FOR循环的应用
12.3.1FOR循环实现多个电机的启停控制
12.3.2PLC的I/O点放入数组
12.3.3位组合成字
12.3.4伺服一键使能
12.3.5冒泡排序
12.3.6指针与数组
12.3.7指针实现冒泡排序
12.3.8批量传送数据
12.3.9三菱PLC变址寻址
12.3.10配方处理
12.3.11模拟量滤波
12.4WHILE循环语句
12.4.1WHILE循环执行流程
12.4.2使用WHILE循环的注意事项
12.5REPEAT循环语句
12.5.1REPEAT循环执行流程
12.5.2使用REPEAT循环的注意事项
12.6循环语句的控制
12.6.1EXIT
12.6.2CONTINUE
12.7循环语句的注意事项
第13章CASE语句
13.1CASE语句的执行流程
13.2CASE语句的意义
13.3CASE语句的应用
13.3.1周期脉冲输出
13.3.2星形三角形启动
13.3.3红绿灯控制
13.3.4桁架机械手
13.3.5工艺的暂停处理
13.3.6简化复杂的IF语句
13.3.7状态机编程法
13.3.8伺服回零
13.3.9步进抱闸控制
13.3.10MODBUS轮询
13.3.11立库
13.4CASE语句与定时器
参考文献
附录APLC程序设计方法
附录B浅谈非标设备的PLC程序设计
附录C关于PLC编程框架和标准化
附录DPLC程序移植
附录E浅谈ST语言的学习方法
本书第1版自出版以来,笔者收到了很多热心读者的来信和反馈,对书的内容提出了很多合理化和可行性建议,再加上PLC技术也在不断迭代更新,笔者便针对性地对第1版的内容进行了增加和修改,并更正了部分错误。
随着工业4.0时代的到来和智能制造的发展,ST语言的应用也越来越广泛。很多读者想快速学会ST语言以解决实际问题,但困难重重,总有条无法逾越的鸿沟横亘在面前。就笔者的个人经验以及读者的反馈来看,困难无非集中在以下几点: 第一,PLC基础不过关; 第二,对PLC的应用目的不清楚; 第三,对ST语言仍然有误解; 第四,不肯动手练习; 第五,不结合机械设备理解程序。针对以上问题,第2版增加了常见PLC如何新建ST语言开发环境的内容。由于PLC品牌众多,但读者对ST语言与PLC品牌无关的概念有点模糊,希望读者能明确一个理念: 学习ST语言,是学习它的语法和语句,以及它的编程理念,结合PLC的各种功能,比如任务和功能块、总线控制、寄存器寻址等功能,应用于工程实践,而不是纠结不同PLC品牌的差异、纠结各种指令的用法。PLC是工业控制器,面向的是工业应用,但很多学习ST语言的实例,跟工业控制应用相差甚远,特别是循环语句部分,第2版着重增加了一些工业现场的实例,并增加了对PLC基础的讲解和程序的实现方法讲解。
编程语言只是工具,就好比厨师手中的刀,如果厨师对烹饪技术一窍不通,再好的刀也做不出可口的佳肴。正所谓“君子生非异也,善假于物也”。如果厨师烹饪技术一流,没有称手的刀,做出的菜肴想必达不到色、香、味俱佳的层次,正所谓“巧妇难为无米之炊”。有了称手的工具,还要有扎实的基础才能使用好工具。所以要想学好ST语言,光学习ST语言的语法和语句是不行的,还需要扎实地掌握PLC基础知识。
最后希望读者能明白,本书的实例虽然脱胎于工业现场,但目的并不仅仅是让读者学会这些实例,最重要的是希望读者能够通过反复练习,结合书中的实例,加深对ST语言的理解,并能融会贯通、举一反三,掌握ST语言的本质,正所谓“熟读唐诗三百首,不会吟诗也会吟”,最终达到“目无全牛”“游刃有余”的境界。
由于笔者水平有限,书中疏漏之处在所难免,敬请读者批评指正。
傅磊2023年12月
前言
随着生产力的发展和科学技术的进步,机器设备控制技术越来越复杂。非标准设备
层出不穷,逻辑控制与运动控制的融合越来越密切,工艺计算也越来越复杂。
从事设计调试的一线工程技术人员都有这样的感受,使用传统的梯形图(Ladder Diagram,LD)编程感觉越来越力不从心,特别是
面对复杂任务的时候。结构化文本(Structured Text,ST)语言的出现,大大简化了程序的编写难度,提高了工作效率,使工程技术人员能够轻松面对各种复杂的控制任务。过去,ST语言更像是奢侈品,支持ST语言的可编程控制器(Programmable Logic Controller,PLC)非常少,而且这些PLC一般是中、高档系列的,价格较贵。近几年,支持ST语言的PLC越来越多,很多品牌的高、中、低档PLC都支持ST语言,例如三菱最基础的FX1S系列PLC,也可以使用ST语言编程。
市面上的多数PLC教材,都以介绍梯形图为主,各大院校也仍在沿用这类教材,
书中即使有涉及ST语言的内容,也是一带而过,让初学者更加糊涂。
各大PLC厂商的帮助文档和编程手册中有对ST语言的讲解,
但是不系统,只有简单的讲解,没有详细的用法说明,其中的例子
也与工业控制的关系不大,很难让初学者理解和掌握,
甚至难以入门。很多电气从业人员
不了解ST语言,甚至将其与西门子PLC的语句表(Statement List,STL)
以及指令表(Instruction List,IL)混为一谈。
在很多场合,ST语言仅仅被用于配合梯形图进行数学运算,这违背了设计ST语言的初衷。人们对ST语言的各种误解,再加上使用ST语言的电气从业人员比较少,严重影响了ST语言的推广和使用,使初学者更加畏惧ST语言。
因此,从工程技术实践出发,编写一本适合电气从业人员学习ST语言的教程,非常必要。
本书是笔者根据多年工作经验及学习ST语言的具体体会编写而成的。大多数电气从业人员都是以梯形图为基础接触PLC编程
的,并且除了理工科专业的毕业生之外,电气从业人员几乎没有接触计算机高级语言的经历。
因此,本书将以最基本的梯形图为切入点,介绍如何用ST语言代替梯形图,逐步深入,
带领读者进入ST语言的世界,即使不会计算机高级语言的电气从业人员也能轻松入门。
笔者水平有限,书中难免有不符合逻辑的地方,欢迎读者批评指正。
傅磊
陆启帅 中国科学院南京天文光学技术研究所
《PLC结构化文本编程》(第2版)摒弃复杂的理论,用电气工程师熟悉的梯形图编程语言和案例,引导读者过渡到ST编程语言。书中不仅系统介绍了ST编程语言的基本编程方法,还详细对比了不同类型PLC的编程差别,可以引领读者快速全面认识PLC,掌握PLC编程技能。
黄克亚 苏州大学机电工程学院
《PLC结构化文本编程》(第2版)实践性强,书中案例均来自作者的开发项目。所以,本书不仅适合读者学习ST编程语言,还非常适合作为广大电气工程师的PLC项目开发教程,读者可以借助书中实例,二次开发,举一反三。
宋廷强 青岛科技大学信息学院
过去,由于不同的设计理念和产品传承,不同品牌的PLC互不兼容,这既增加了用户的学习成本,又增加了企业的使用成本。现在,IEC61131-3标准已经成为全球标准,让PLC真正实现了互通互用。而ST编程语言的跨平台特性将进一步提高PLC编程的效率,使用户不再因为更换不同品牌的PLC而增加学习成本。因此,推荐读者学习《PLC结构化文本编程》(第2版),早日掌握ST编程模式。
张会永 杭州日鼎公司
作者是具有多年现场服务、项目实施经验的自动化行业的资深工程师,对主流的PLC品牌(如西门子、施耐德、三菱等)都非常熟悉。《PLC结构化文本编程》(第2版)是作者多年开发经验的分享,书中系统介绍了ST语言的编程方法,是读者学习ST语言的优秀工具书。
评论
还没有评论。