上一页 | 下一页 |
脚本是为了便于编程用以前的梯形图语言难以编程的运算处理和字符串处理等而开发的语 言。
序号 | 含义 |
1 | 打开:打开本地的脚本文件 |
2 | 保存:将正在编辑的脚本内容即时保存 |
3 | 另存为:将正在编辑的脚本内容保存到指定目录下 |
4 | 编译:将当前脚本编译,并生成指令集下发给PLC(下发动作待开发) |
5 | 行号:代码行号,连续递增数字 |
6 | 脚本编辑区:用于脚本内容编辑(见脚本编辑) |
7 | 局部变量管理:如脚本运行过程中需要监视或者中间值跟踪等,此时有必要创建一些局部变量以达到目的 |
8 | 输出:编译脚本后生成的指令集预览,顺序往下执行 |
9 | 错误:编译失败时,将会显示出错信息 |
使用 脚本,可以将 梯形图 程序编程的一系列控制,用类似 BASIC 语言的编程格式编程。
本脚的实现,加入一些元素必不可以少,包括:关键字、语法、库函数、变量(局部变量及局部变量)、自定义函数等。
通过 脚本,可使用赋值语句进行编程,将值和运算结果存储到指定位置。如:
a = b +1
其中,"="的左边变量保存右边运算的结果。
2.1.1 值赋值
如将常数100,赋值给变量a,则脚本为:a = 100
2.1.2 字符串赋值
(待实现)
脚本不需要将算术运算和逻辑运算等转换成 LD 程序等专用指令,可直接编程运算符。
如将b加1024,再乘以2的结果赋给a:a = (b + 1024)*2
|
使用脚本,可以对各种控制语句进行编程。使用控制语句,可以很简便地控制程序流程。
控制语句有2种,包括条件转移语句和循环控制语句。
2.3.1 条件转移
控制语句 | 基本格式 | 说明 |
IF语句(待实现) | ||
2.3.2 循环控制
(待实现)
通过在变量或常数加上 后缀,决定函数的动作类型或存储到软元件的值的含义。
后缀 | 类型 | 范围 |
.U | 单字无符号整数 | 0~65535 |
.S | 单字有符号整数 | -32768~+32767 |
.D | 双字无符号整数 | 0~4294967295 |
.L | 双字有符号整数 | -2147483648~+2147483647 |
.F | 单精度浮点型 | |
.DF | 双精度浮点型 |
目前该类函数与【C语言】一致。(待完善)
在编辑脚本的过程中,为了减少重复编写相同代码,提高生产效率,脚本功能中引用了“自定义函数”,其作用是:将一个子功能封装成一个函数,以供其它地方使用。
(待实现)
脚本编辑过程中,为了更方便、快捷地进行编辑,加脚本编辑框加入了一些辅助功能:高亮显示,联想,提示,自动补全等。
当输入为局部变量、全局变量、库函数、关键字,相应的输入内容会自动高亮显示。
局部变量、全局变量:(见变量使用)
当输入内容时,会根据输入内容作为关键字查找带有该内容的可能项,以表格的形式展示出来。如下图:
其中第一列为名称,可以为库函数名称,局部变量名称、全局变量名称。
当输入函数名称后回车或者再输入左括号时,会以冒泡的方式显示该函数的返回值及参数。直到输入右括号、退格删除左括号或者移动光标到该左括号右侧。(待实现)
配合联想功能一起使用,当输入关键字后,在出现的联想框双击需要输入的项或者键盘上下键移动选中输入项,回车即可完成函数或者变量的输入。如上图,联想框中的【SIN】被选中时,这时回车,该函数将会替换为【SIN】。
在脚本功能中,变量分为两种:局部变量及全局变量。
局部变量:作用域为当前编辑脚本。
全局变量:作用域为所有脚本(见变量)。
在脚本编辑中,所有的局部变量或者保障局变量都会高亮显示。
如果编译通过,该窗口将会显示脚本的相应指令集。
序号 | 含义 |
1 | LD M8000:开始 |
2 | LDA.F @c:载入局部变量c |
3 | SIN:进行SIN(c)运算 |
4 | FlOAT:将SIN(c)结果转换成单精度值 |
5 | STA.F @VM0:将结果保存到@VM0临时寄存器中 |
6 | SUB.S @VM0:进行b - @VM0运算,其中@VM0=SIN(c) |
7 | ADD.F 2:进行a+2的运算 |
8 | MUL.F @VM2:进行 @VM2 * 3操作,其中@VM2=a+2 |
9 | DIV.F @VM5:进行 a / 3操作 |
一些指令集说明
指令 | 含义 |
LD M8000 | 开始 |
LDA.X Y | 加载变量Y,其类型为X(X,Y的含义下同,不再重复解释) |
ADD.X Y | 加法运算,Y表示其中一个加数,另一个加数为前一个LDA.X或者STA.X的变量 |
SUB.X Y | 减法运算,Y表示补减数,减数为前一个LDA.X或者STA.X的变量 |
MUL.X Y | 乘法运算,Y表示其中一个乘数,另一个乘数为前一个LDA.X或者STA.X的变量 |
DIV.X Y | 除法运算,Y表示被除数,除数为前一个LDA.X或者STA.X的变量 |
SHORT | 转换成单字有符号整数 |
USHORT | 转换成单字无符号整数 |
INT | 转换成双字有符号整数 |
UINT | 转换成双字无符号整数 |
FLOAT | 转换成单精度浮点数 |
DOUBLE | 转换成双精度浮点数 |
@VMn | 临时寄存器,n表示数字编号(下同),如:@VM1,@VM2...... |
@vname | 局部变量,vname表示局部变量名称,如:a变量表示为@a,b变量表示 为@b...... |
全局变量 | 直接使用变量名称表示 |
STA.X @VMn | 将前一步的运算结果保存到@VMn,其中n表示数字编号;若要保存到变量中,@VMn改成相应的变量表示 |
...... | ...... |
如果编译失败,结果栏将会自动切换到了【错误】一页,显示内容包括:序号,类型,详情,位置。
名称 | 含义 |
序号 | 错误序号,从1开始 |
类型 | 错误类型(待细化) |
详情 | 具体错误信息 |
位置 | 出错的位置 |
...... | ...... |
上一页 | 下一页 |