【发布时间】:2022-10-25 18:46:31
【问题描述】:
使用我使用的整数、浮点数或字符串等变量写入符号使用下面的 HMI 文本框将变量写入 PLC.onTextChanged在属性窗口中(见下图)。
但它不适用于 Time 变量。 如何在不更改 PLC 代码的情况下完成这项工作?
【问题讨论】:
使用我使用的整数、浮点数或字符串等变量写入符号使用下面的 HMI 文本框将变量写入 PLC.onTextChanged在属性窗口中(见下图)。
但它不适用于 Time 变量。 如何在不更改 PLC 代码的情况下完成这项工作?
【问题讨论】:
我以前从未使用过javascript,但这就是我找到解决方案的地方。 也使用了.onUserInteractionFinished代替.onTextChanged如下图所示:
之后我写了这个javascript代码:
(function (TcHmi) {
var CheckTextboxForNumber = function (Textbox) {
//get content from the textbox
var _text = Textbox.getText();
//convert to time variable in
if (!_text.startsWith('PT')) {
var _value = Number(_text);
Textbox.setText('PT' + _value.toFixed(3) + 'S');
return _value.toFixed(3);
}
};
TcHmi.Functions.registerFunction('CheckTextboxForNumber', CheckTextboxForNumber);
})(TcHmi);
我把代码放在前面写入符号,加上舍入,因为在小数点后第 3 位后舍入的方式不同:当我在不舍入小数的情况下进行测试时,从第 4 位开始,PLC 会显示其他小数,然后我在 HMI 文本框中输入。
我在“操作和条件”窗口中输入的内容如下图所示:
之后,它按预期工作。
【讨论】:
尝试使用 TC Hmi 上的对象“数字输入”在 PLC 中写入变量,事件为“.onUserInteractionFinished”。它应该工作。
【讨论】: