将优先级分配给基于PLC的电机的问题

发布于 2025-01-25 04:36:35 字数 373 浏览 2 评论 0原文

我想为数组中的每个元素分配一个唯一的优先级,但是在下面的摘要中,我获得了相同的优先级m重复具有相同工作时间值的元素。如何为每个元素设置独特的优先级?

// assign priority number according to working times
#m := 0;
FOR #m := 0 TO 10 DO
    FOR #l := 0 TO 10 DO
        IF #OrderedList[#m] = #WorkingTimes[#l]."Time" THEN
            #WorkingTimes[#l].Priority := #m;
        END_IF;
    END_FOR;
END_FOR;

I want to assign a unique priority to each element in an array, but with the snippet below I'm getting the same priority m repeated for elements with the same working time values. How do I set a unique priority for each element?

// assign priority number according to working times
#m := 0;
FOR #m := 0 TO 10 DO
    FOR #l := 0 TO 10 DO
        IF #OrderedList[#m] = #WorkingTimes[#l]."Time" THEN
            #WorkingTimes[#l].Priority := #m;
        END_IF;
    END_FOR;
END_FOR;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

人生戏 2025-02-01 04:36:35

设置一些默认优先级,然后在更新元素时​​退出循环的内部

// assign priority number according to working times

FOR l := 0 to 10 DO
    WorkingTimes[l].Priority := -1;
END_FOR;

FOR m := 0 TO 10 DO
    FOR l := 0 TO 10 DO
        IF OrderedList[m] = WorkingTimes[l].Time AND WorkingTimes[l].Priority = -1 THEN
            WorkingTimes[l].Priority := m;
            EXIT;
        END_IF;
    END_FOR;
END_FOR;

我尚未对此进行测试,但是该概念应该起作用。

Set some default priority then exit the inner FOR loop when you update an element

// assign priority number according to working times

FOR l := 0 to 10 DO
    WorkingTimes[l].Priority := -1;
END_FOR;

FOR m := 0 TO 10 DO
    FOR l := 0 TO 10 DO
        IF OrderedList[m] = WorkingTimes[l].Time AND WorkingTimes[l].Priority = -1 THEN
            WorkingTimes[l].Priority := m;
            EXIT;
        END_IF;
    END_FOR;
END_FOR;

I haven't tested this, but the concept should work.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文