Pronto72 зато там есть Linux, смотреть команды в CodeSys которые смогут выполнить команды в системе... Или настройте ntp клиента в системе
Pronto72 зато там есть Linux, смотреть команды в CodeSys которые смогут выполнить команды в системе... Или настройте ntp клиента в системе
Привет.
Вышел новый Raspberry Pi Imager версии 1.7.2 (для накатывания образа Raspbian).
Он записывает на карту памяти систему Raspbian и может теперь сразу же задавать первичные параметры системы: наличие SSH, HostName, WiFi и проч.
Но CodeSys с ним работает плохо. Зависает через 10-20 секунд работы.
Кто-нибудь сталкивался с этим?
RPIimager.png
Лучше образ ставить с realtime патчем на rp2 , и рантайм multicore
Dmitriy Murashov
SPS Software Engineer Automation Engineering RUS
Ну и ставь старый , если тебе ждитерр сигналов не критичен, то можно и без реал тайм патча, https://youtube.com/shorts/VbcZS3Jn0I4?feature=share
Dmitriy Murashov
SPS Software Engineer Automation Engineering RUS
Привет.
Хочу получить IP-адрес своей Raspberry.
Читал, что необходимо использовать SysProcessExecuteCommand2, т.к. она может отдать значение команды назад в CodeSys.
Операнд команды будет такой:
ip -f inet addr show eth0 | sed -En -e 's/.*inet ([0-9.]+).*/\1/p'
В терминале он возвращает:
192.168.9.103
Но как получить это в строке в ST программе?
Есть у кого пример использования?
Скрытый текст:
Спасибо.
UP: Пробовал с командой echo Hello, Owen! (должна вернуть Hello, Owen!).
Но результата нет:Код:PROGRAM PLC_PRG VAR bTest : BOOL; testTrigger : Standard.R_TRIG; sCommand : STRING; refCommand : REFERENCE TO STRING; sOutput : STRING; refOutput : REFERENCE TO STRING; result : POINTER TO SysProcess.SysTypes.RTS_IEC_RESULT; ---------- Странно... END_VAR testTrigger(CLK:= bTest, Q=> ); sCommand:= 'echo Hello, Owen!'; refCommand REF= sCommand; refOutput REF= sOutput; IF testTrigger.Q THEN SysProcessExecuteCommand2(pszCommand:= refCommand, pszStdOut:= refOutput, udiStdOutLen:= SIZEOF(sOutput), pResult:= ADR(result)); bTest:= FALSE; END_IF
get_ip.png
Последний раз редактировалось ВладОвен; 05.08.2022 в 17:25.
В общем, получилось узнать свой IP!
myIP.pngКод:PROGRAM PLC_PRG VAR xOneTime : BOOL := TRUE; sInput, sOutput : STRING; refInput, refOutput : REFERENCE TO STRING; result : POINTER TO SysProcess.SysTypes.RTS_IEC_RESULT; sMyIP: STRING; END_VAR IF xOneTime THEN sInput:= 'ip -f inet addr show eth0 | sed -En -e "s/.*inet ([0-9.]+).*/\1/p"'; refInput REF= sInput; refOutput REF= sOutput; SysProcessExecuteCommand2(pszCommand:=refInput, pszStdOut:=refOutput, udiStdOutLen:=SIZEOF(sOutput), pResult:=ADR(result)); // IP приходит с завершающим символом, который нужно убрать. sMyIP := LEFT(sOutput, LEN(sOutput)-1); xOneTime:= FALSE; END_IF
Нужно бы еще конечно добавить проверку IP от беспроводной сети. Ведь Raspberry может быть подключена и по WiFi. Тогда команда в Linux будет:
'ip -f inet addr show wlan0 | sed -En -e "s/.*inet ([0-9.]+).*/\1/p"'
Т.е. если по eth0 возвращается строка с длинной 0, то повторять процедуру для wlan0.
Скрытый текст:
Последний раз редактировалось ВладОвен; 30.08.2022 в 11:15.
возможно первая команда подойдет по ссылке https://owen.ru/forum/showthread.php...l=1#post335165 чтоб не перебирать интерфейсы
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
Привет.
Кто-нибудь пробовал реализовать обмен по шине EtherCAT в RaspberryPi? Контроллеры Овен не поддерживают, увы.
Я хочу подключить модуль ввода-вывода (т.е. не движение). Например, вот этот модуль.
Потянет ли Raspberry это?
Потянет ли среда CodeSys3.5 это?
Какие подводные камни появятся?
Нужна ли покупка доп.лицензий, доп.оборудования?
Спасибо.