【问题标题】:Setting time variable via textbox in Twincat 3 HMI通过 Twincat 3 HMI 中的文本框设置时间变量
【发布时间】:2022-10-25 18:46:31
【问题描述】:

使用我使用的整数、浮点数或字符串等变量写入符号使用下面的 HMI 文本框将变量写入 PLC.onTextChanged在属性窗口中(见下图)。

但它不适用于 Time 变量。 如何在不更改 PLC 代码的情况下完成这项工作?

【问题讨论】:

    标签: time textbox plc twincat


    【解决方案1】:

    我以前从未使用过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 文本框中输入。

    我在“操作和条件”窗口中输入的内容如下图所示:

    之后,它按预期工作。

    【讨论】:

      【解决方案2】:

      尝试使用 TC Hmi 上的对象“数字输入”在 PLC 中写入变量,事件为“.onUserInteractionFinished”。它应该工作。

      enter image description here

      【讨论】:

        猜你喜欢
        • 2022-06-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多