Спасибо, тогда буду пробовать их тормошить.
Вид для печати
При отсутствии запросов от мастера ПЧ уходит в безопасный режим?
Евгений Кислов, если Вам не сложно могли бы Вы объяснить почему в конце перечисления добавили fbMbSerialRequest()
На канале ОВЕНа в Ютубе есть вебинар по работе с библиотекой OwenCommunication и там при записи или считывании опускаютКод:wCmdWord := 22;
fbMbSerialRequest.xExecute := TRUE;
fbMbSerialRequest.hCom := fbComControl1.hCom;
fbMbSerialRequest.xIsAsciiMode := FALSE;
fbMbSerialRequest.usiSlaveId := 15; // адрес слейва
fbMbSerialRequest.eFuncCode := OCL.MB_FC.WRITE_SINGLE_REGISTER; // функция
fbMbSerialRequest.uiDataAddr := 4864; // адрес начального запроса
fbMbSerialRequest.uiDataCount := 1; // число регистров
fbMbSerialRequest.pData := ADR(wCmdWord);
fbMbSerialRequest.szSize := SIZEOF(wCmdWord);
fbMbSerialRequest();
есть ли какие-то условия в указании этих переменных?Код:fbMbSerialRequest.xExecute := TRUE;
fbMbSerialRequest.hCom := fbComControl1.hCom;
fbMbSerialRequest.xIsAsciiMode := FALSE;
и в руководстве по Modbus пишут следующим образом
я правильно понимаю что это равнозначное написание или все таки есть разница?Код:wCmdWord := 22;
fbMbSerialRequest
(
xExecute := TRUE;
hCom := fbComControl1.hCom;
xIsAsciiMode := FALSE;
usiSlaveId := 15; // адрес слейва
eFuncCode := OCL.MB_FC.WRITE_SINGLE_REGISTER; // функция
uiDataAddr := 4864; // адрес начального запроса
uiDataCount := 1; // число регистров
pData := ADR(wCmdWord);
szSize := SIZEOF(wCmdWord);
);
Это вызов экземпляра ФБ.Цитата:
если Вам не сложно могли бы Вы объяснить почему в конце перечисления добавили fbMbSerialRequest()
Без него было примерно так - "погрузили все вещи в машину, но на газ не нажали".
Действительно, блоки кода 1 и 3 из вашего поста - семантически эквивалентны.Цитата:
я правильно понимаю что это равнозначное написание или все таки есть разница?
В вебинаре показан еще один подход ("лаконичный"), когда вызов экземпляра ФБ происходит только в одном месте (и вот там как раз ему передаются значения на входы xExecute, hCom и xIsAsciiMode), а на шагах CASE другим его входам присваиваются параметры конкретного запроса (адрес устройства, адрес регистра и т.д.).
Я рекомендую вам использовать тот подход, который для вас более понятен.
День добрый.
Подскажите пожалуйста, как в CoDeSys организовано развёртывание проекта на множество устройств? Желательно без использования самой IDE CoDeSys, автономно.
Добрый день.
Типовое решение, предлагаемое CODESYS - их Automation Server.
https://www.automation-server.com/en/
А есть варианты нетиповых решений?
Не могу вам ничего готового автоматизированного предложить, извините.
Можно попробовать в сторону скриптового движка CODESYS IDE посмотреть (но тогда на ПК все равно потребуется ее установить):
https://content.helpme-codesys.com/e...tart_page.html
возможно Вы про это спрашиваете https://youtu.be/dJf4FMQoi0o?t=204
Ссылка на пост где ссылаются на видео https://owen.ru/forum/showthread.php...l=1#post401847
Вложение 66342