Спасибо большое.
Вид для печати
Здравствуйте,
столкнулся с такой проблемой - установил CS3.5 sp14 p3 на один ПК, сделал проект с визуализацией на СПК107 м01, подтянул картинки, мною же нарисованные. За архивировал проект ВЕСЬ. Установил такое же ПО на другой машине, разархивировал проект ВЕСЬ на другом ПК, но картинки не подтянулись, прописал к ним путь еще раз, но они так и не появились на экране. Может в настройках ПО на втором компе где то какую то галочку забыл поставить? что можно проверить еще?
День добрый.
Есть ли возможность для функционального блока, имплементирующего два (к примеру) интерфейса с одинаковыми по сигнатуре методами, различить их вызовы?
Если да, то как это сделать.
Есть два интерфейса, декларирующие методы с одинаковой сигнатурой (совпадающие имена методов, входные параметры и тип возвращаемого значения). И есть функблок, имплементирующий оба этих интерфейса. При реализации этого метода в функблоке компилятор не выдаёт предупреждений, но как понять, к какому из интерфейсов этот вызов будет относиться?
Почитал интернеты -- похоже, так делать плохая практика.
Безусловно.Цитата:
Почитал интернеты -- похоже, так делать плохая практика.
Можно просто проверить на простейшем примере в симуляторе.Цитата:
как понять, к какому из интерфейсов этот вызов будет относиться?
Я бы предположил, что будет использоваться тело метода того интерфейса, который был указан первым во вкладке IMPLEMENTS.
И снова здравствуйте. Теперь вопросы доставляет оператор __QUERYINTERFACE , а именно:
При сборке и запуске примера (https://help.codesys.com/webapp/_cds...rsion=3.5.16.0) под СПК107 в PLC_PRG переменная xResult2 сначала принимает значение FALSE, затем, при присвоении переменной flag значения FALSE переключается в TRUE, и до перезагрузки ПЛК (или эмулятора) уже своего значения не меняет. Корректно ли такое поведение оператора __QUERYINTERFACE , или я не понимаю, как он работает?
Все работает корректно.