#制作一个在可视化界面可用于标准计算器功能详细案例#
前言:
在可视化界面或触摸屏上,很少有带计算器功能的脚本程序,当我们在工控现场需要使用计算器时,往往依靠电脑或手机上的计算器,如果把计算器的功能移值到界面上,或者为PLC提供一个计算公式,那么,非常方便的即时使用,也可以将结果作为数据,再进一步处理应用。本篇在写文章的同时,也在不断研究和加入新的功能,但整体的思路是不变的,因此个别代码和界面后续会出现变更。
CODESYS可视化标准计算器制作详细案例(一)
———————————————————————————————————
二、程序代码
结合上篇的设计方案的内容,我们对此计算器功能编写程序,在写程序前,要先了解一下字符串的操作功能块都是哪些,相关说明可以查看官方资料。
✍组合字符串:CONCAT(STR1,STR2);
✍删除字符串:DELETE (STR, LEN, POS);
✍查找字符串:FIND(STR1, STR2);
✍插入字符串:INSERT (STR1, STR2, POS);
✍左取字符串:LEFT (STR, SIZE);
✍取长字符串:LEN (STR);
✍任取字符串:MID (STR, LEN, POS);
✍替换字符串:REPLACE(STR1, STR2, L, P);
✍右取字符串:RIGHT (STR, SIZE);
1.结构体变量
如下,建立一个结构体,用于计算器的等式符号及数字计算。
TYPE CalculatorStruct :
STRUCT
value1:REAL;//数值1
value2:REAL;//数值2
result:REAL;//结果
symbolType:WORD;//符号
END_STRUCT
END_TYPE
2.程序变量
如下所示,预留20个按键,以及默认100个等式可以满足常用的计算法则和次数。
PROGRAM PLC_PRG
VAR
// 数值赋值用
Number:ARRAY[0..100] OF STRING;
i:INT;
j:INT := 3;
// 符号类型
symbolType:WORD := 0;
numberMove: BOOL;
numberMove0: BOOL;
numberMove1:BOOL;
numberMove2:BOOL;
result: array[0..10] of real;
calculator: ARRAY[0..100] OF Calculatorstruct;
// 等式输入
equationInput: STRING;
// 等式长度
equationLength: INT;
// 等式查找
equationFind: ARRAY[0..3] OF INT;
equationOutput: STRING;
k: int;
// 符号临时用
symbolTemp: STRING;
equationFindLast: INT;
key: ARRAY[1..20] OF BOOL;
keyR: ARRAY[1..20] OF R_TRIG;
END_VAR
3.程序代码
(1)字符输入
如下代码,将15个数字或符号,通过按键操作写入到计算器的输入文本中。每次均在最后的字符上逐步添加。
//等式字符输入
//1234567890.+-*/=←C
FOR i:=1 TO 20 DO
keyR<