СODESYS V3.5: Repository Archive V3.5 SP4 (необходим для старых СПК) / Раздел CDS V3.5 на сайте
Форум: Вопросы и ответы / Визуализация / Настройка обмена с другими устройствами
Web-панель ВП110 / Modbus-индикатор СМИ2-М
Telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | oscat.ru | Как обратиться в техподдержку?
Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | XY problem | Как правильно задавать вопросы | AnyDesk
Привет.
Все мы знаем как при помощи элемента "Список тестов" можно изменить надписи на граф.примитивах с одного языка на другой. Это в CodeSys заложено из коробки.
Но как в программе поменять значения символьных строк при смене языка системы?
Например, при английском языке системы строка myString должна быть равна "Eat more of those French buns!", а при украинском эта же строка должна быть равна "З'їж ще цих французьких булок". Мне нужна такая строка (разная в зависимости от языка системы), чтобы выкидывать ее на сервер.
Конечно, это можно реализовать через код:
IF VisuElems.CURRENTLANGUAGE = 'eng' THEN
myString := "Eat more of those French buns!";
ELSIF VisuElems.CURRENTLANGUAGE = 'ukr' THEN
myString := "З'їж ще цих французьких булок";
END_IF
Но такой подход мне не очень нравится, хотелось чтоб все было именно в таблице "Список текстов". Тогда при добавлении нового языка, всё правилось бы в одном месте кода. Т.е. будет системный подход к добавления новой локализации.
Суть: Есть ли решение менять значение string в зависимости от выбранного языка системы, но делать это при помощи "Список тестов", а не кодом?
Спасибо.
Привет.
Подскажите, что эта за запись?
Можно ли так делать? Или не стоит.
Спасибо.
Counter_LO AT %MB0: BYTE;
Counter_HI AT %MB1: BYTE;
Counter AT %MW0: WORD;
Добрый день.
п. 3.1.1:
https://ftp.owen.ru/CoDeSys3/98_Book..._v10_11_ru.pdf
СODESYS V3.5: Repository Archive V3.5 SP4 (необходим для старых СПК) / Раздел CDS V3.5 на сайте
Форум: Вопросы и ответы / Визуализация / Настройка обмена с другими устройствами
Web-панель ВП110 / Modbus-индикатор СМИ2-М
Telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | oscat.ru | Как обратиться в техподдержку?
Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | XY problem | Как правильно задавать вопросы | AnyDesk
Спасибо. Понял.
Но конкретно в этих трех строчках что происходит?
Counter_LO AT %MB0: BYTE;
Counter_HI AT %MB1: BYTE;
Counter AT %MW0: WORD;
В работающей программе я вижу, что создали переменную 16 бит. Далее перебирают эти биты. Засовывают их через сеть в прибор ввода-вывода на 16 выходов (двумя кусками по 8 бит).
Однако в проекте в присоединённом устройстве во вкладке "Соотнесение входов/выходов" нету переменных %MB0 или %MB1. Там соотнесено как %QX0.0 ... %QX0.7 и %QX1.0 ... %QX1.7.
Вопрос:
1. Как MB попадает в QX ?
2. Как MW0 соответствует MB0 и MB1.
Спасибо.
Т.е. Mx это типа переменная ляжет в память?
Допустим, MW0 - это word по адресу 0 ?
А MB15 - это byte по адресу 15 ?
Тогда MB4 попадет (мапится) частично на MW3 ? Так?
А как насчет скорости работы программы?
Применение таких вот %X дает прирост в скорости?
Да, возможно пока есть глобальные непонятки с работой CoDeSys.
Все пройдет (с).