ST结构化文本
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
结构化文本语言学习心得
一、工程的简介和建立工程
1.工程文件的结构:
工程文件的后缀名为pro,在新工程中建立的第一个程序结构单元(Program Organization Unit)将被自动命名为PLC_PRG,这个程序结构单元就类似于C
语言中的主程序。在PLC_PRG中可以调用各种函数及功能块,而函数和功能块都属于程序结构单元。
PLC-1131-3 DS能够区分在同一工程中的不同对象:
程序结构单元(POU)
数据类型(data types)
资源(resources)
2.工程的设置:
1) 首先应该设置PLC的输入输出以保证工程中使用的地址的准确性。
2)接着建立解决问题的程序结构单元
3) 选择适当的语言编写程序
4) 写好程序之后,对程序进行编译去除程序中的所有错误。
3.工程的测试:
当工程之中的所有错误被去除之后激活仿真模式,就是与仿真PLC连接,与此
同时将工程下载到PLC中,这样PLC-1131-3 DS就处于在线方式了。
现在能以适当的顺序测试工程了,手动改变输入变量的值,观察输出是否正确。用PLC-1131-3DS调试程序
当程序发生错误时,你可以设置断点。当处理发生中断时,你就可以及时的在断点处检查所有工程变量的值。工作在单步方式(singlestep)下,可以检验程序的逻辑错误。
你可以强制输入或输出变量的值。使用流控制(flowcontrol)可以知道哪些程序段已经执行。采样轨迹(SamplingTrace)显示变量在长时间的变化过程曲线。
整个工程可以以文本文件的形式导出。
总而言之PLC-1131-3 DS对于PLC编程是一种完善和方便的工具。
4.工程的组成
(1)工程(Project)
一个工程包括了PLC程序中所有的对象,工程中包含了如下对象:错误!未找到
引用源。
∙程序结构单元POUs
∙数据类型data types
∙资源resources
∙库函数libraries
(2)程序结构单元(POU)
函数 (Functions)错误!未找到引用源。, 功能块(function blocks)错误!未找到引用源。和程序(programs)都是程序结构单元(错误!未找到引用源。POUs)。
每个POU包括了定义变量和程序主体两个部分错误!未找到引用源。错误!未找到引用源。。程序主体用IEC编程语言编写,其中包括:
指令表(IL)
结构文本(ST)
SFC
FBD
梯形图(LD).
PLC-1131-3 DS 支持所有的标准IEC程序结构单元。错误!未找到引用源。错误!未找到引用源。错误!未找到引用源。
POUs之间能够相互调用,但是不允许递归调用.
(3)函数(Function)错误!未找到引用源。
当定义函数的时候,不要忘记函数中必须含有返回值的数据类型,也就是说在函数名的后面
必需紧跟冒号和一个数据类型。
二.ST结构化文本编程
1.定义
"结构"是指高水平的结构化编程能力,象一个"结构化的编程";"文本"是指应用
文本而不是梯形图和顺序函功能表的能力。ST语言不能代替其它的语言,每种
语言都有它自己的优点和缺点。ST主要的一个优点就是能简化复杂的数学方程。
2.特点
高级文本编程语言
结构化的编程
简单的标准结构
快速高效的编程
使用直观灵活
与PASCAL类似
有计算机编程经验的人可以很容易地使用它
符合IEC 61131-3 标准
3.功能
数字量和模拟量I/O
逻辑操作
逻辑比较表达式
算术运算
判断语句
机器的状态语句
循环语句
功能块
可选用的动态变量
诊断工具
4.结构文本基础
IF value < 7 THEN
WHILE value < 8 DO
value := value + 1;
END_WHILE;
END_IF;
4.1表达式
表达式是指返回变量评估值的结构。表达式由操作符和操作数组成。操作数可以是常量,变量,调用函数或其它表达式。
4.2赋值操作符
通过一个表达式和一个值来给变量赋值。赋值语句包括位于左边的变量,赋值操 作符":=",及后边需要计算的表达式。所有的语句,包括赋值语句,必须要以分 号";"结尾。
当这行程序执行后,变量"Var 1"的值是变量"Var 2"
的两倍。
4.3注释
虽然注释经常被删掉,但它们是源代码中非常重要的一部分。它们解释了一部分 代码,使程序更易读懂。注释帮助你或其他人读你的程序,即使过去了很长时 间。注释不被编译,因此不会影响程序的执行。注释应该用一对星号和小括号括 起来"(*comment*)"
。
4.4操作符优先级
如果在一个表达式中使用几个操作符,就会出现优先级的问题(执行的顺序)。 操作符按优先级的顺序来执行。
在任何一个表达式中,首先执行最高级别的操作符,接着执行低一级的操作符, 等等,直到执行完所有的操作符。具有相同级别的操作符按照书写顺序从左至右 依次执行。
操作符 符号/语言 优先级
括号 ()
依次
降低
函数调用
例子 Call argument(s) LN(A), MAX(X), 等 注释 ** 取反 NOT
乘 *
除 /