Добрый день.
Пытаюсь подключится к виртуальному контроллеру, при подключении выводится окно ввода пользователя и пароля, какого пользователя у меня требует codesys?
Вложение 81794
Вид для печати
Добрый день.
Пытаюсь подключится к виртуальному контроллеру, при подключении выводится окно ввода пользователя и пароля, какого пользователя у меня требует codesys?
Вложение 81794
capzap , kondor3000 Спасибо вам ! пойду разбираться, пока туплю сильно
Добрый день.
Того, который был создан при первом подключении к виртуальному контроллеру.
Вот тут написано, как его удалить:
https://owen.ru/forum/showthread.php...l=1#post401060
А вот тут - в п. 10 - как сделать так, чтобы CODESYS не просил его создать при первом подключении к виртуальнику:
https://ftp.owen.ru/CoDeSys3/99_Foru...ures_forum.pdf
Что то я совсем запутался;) я точно знаю что 10 это значение порога 1. Запутался, в моменте что куда приходит)
Вложение 81798
Вложение 81799
У меня вот что получается Вложение 81800
А должно вот так https://owen.ru/forum/attachment.php...3&d=1738774406
Нашел у себя ошибку Q1:=Q/100; на 100 делить нужно, а изначально 10 было.
Так ну с порогами вроде как разобрался, теперь с концентрацией буду пробовать.
Спасибо всем за помощь!
;) Я случайно
А я могу часть своего питоновского скрипта адаптировать для расчёта концентрации?
Код:Обрабатываем два регистра, 32-битное число разбиваем на 4 байта.
byte1 = (registers[0] >> 8) & 0xFF # Старший байт первого регистра
byte2 = registers[0] & 0xFF # Младший байт первого регистра
byte3 = (registers[1] >> 8) & 0xFF # Старший байт второго регистра
byte4 = registers[1] & 0xFF # Младший байт второго регистра
Определяем знак и позицию запятой
sign_bit = (byte1 >> 7) & 0x01 # 7-й бит первого байта отвечает за знак (Если sign_bit = 1, то число отрицательное.)
comma_position = byte1 & 0x07 # Младшие 3 бита первого байта — позиция запятой
Формируем число
integer_part = byte2 * 10000 + byte3 * 10 + (byte4 >> 4) # Целая часть
decimal_part = (byte4 & 0x0F) * 100 # Дробная часть
byte2 — это старшая часть целого числа (умножается на 10000).
byte3 — промежуточное значение (умножается на 10).
byte4 >> 4 — младшие разряды целой части.
byte4 & 0x0F — дробные разряды, умноженные на 100.
Применяем знак и делим на 10^comma_position
value = integer_part + decimal_part / 10000 # Объединение частей
value = -value if sign_bit else value # Применение знака
value /= 10 ** comma_position # Сдвиг запятой
value = round(value, 2) # Округление до двух знаков
Всем большое спасибо, все получилось
Вложение 81803