Segnetics

Вернуться   Segnetics > Форум Segnetics > SMLogix

SMLogix Вопросы о работе в среде SMLogix и о FBD-программировании

Ответ
 
Опции темы Поиск в этой теме
Старый 22.02.2023, 11:26   #1
vkn
Новичок
 
Регистрация: Feb 2023
Сообщения: 16
Благодарил(а): 9 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Modbus master, переменные

Здравствуйте!
Есть адрес 4870, тип переменной UINT32, 4 байта, порядок байтов Big-Endian, контроллер Matrix, в карте памяти выбираю тип integer, направление R(in), получаю не внятные значения, что я делаю не так, как в контроллере выбирается тип и порядок байтов?
vkn вне форума   Ответить с цитированием
Старый 22.02.2023, 11:34   #2
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 085
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Modbus master, переменные

Цитата:
Сообщение от vkn Посмотреть сообщение
Здравствуйте!
Есть адрес 4870, тип переменной UINT32, 4 байта,

контроллер Matrix, в карте памяти выбираю тип integer

что я делаю не так
Вы не читаете мануалы. INT32 это длинный INT, он же LONG.



Цитата:
Сообщение от vkn Посмотреть сообщение
как в контроллере выбирается тип и порядок байтов?
В программе вы можете переставить всё как хотите, хоть побитово перевернуть каждые два разряда. Блоки reg32->bits и bool->long.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Благодарность от:
Старый 22.02.2023, 11:50   #3
vkn
Новичок
 
Регистрация: Feb 2023
Сообщения: 16
Благодарил(а): 9 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Modbus master, переменные

Цитата:
Сообщение от Arsie Посмотреть сообщение
Вы не читаете мануалы. INT32 это длинный INT, он же LONG.





В программе вы можете переставить всё как хотите, хоть побитово перевернуть каждые два разряда. Блоки reg32->bits и bool->long.
Не пинайте пожалуйста сильно, но для моего ума то сложно), приведите пожалуйста пример, буду очень признателен.
vkn вне форума   Ответить с цитированием
Старый 22.02.2023, 11:56   #4
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 085
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Modbus master, переменные

Цитата:
Сообщение от vkn Посмотреть сообщение
Не пинайте пожалуйста сильно, но для моего ума то сложно), приведите пожалуйста пример, буду очень признателен.
Ставите два блока друг против друга. Слева reg32->bits, справа bool->long. ПКМ на левом блоке, выбираете максимальное количество выходов.
Далее ПКМ на правом блоке, выбираете максимальное количество входов. Ну а дальше всё интуитивно понятно


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Благодарность от:
Старый 22.02.2023, 12:33   #5
vkn
Новичок
 
Регистрация: Feb 2023
Сообщения: 16
Благодарил(а): 9 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Modbus master, переменные

Цитата:
Сообщение от Arsie Посмотреть сообщение
Ставите два блока друг против друга. Слева reg32->bits, справа bool->long. ПКМ на левом блоке, выбираете максимальное количество выходов.
Далее ПКМ на правом блоке, выбираете максимальное количество входов. Ну а дальше всё интуитивно понятно
По факту значение на выходе должно быть примерно 850, а тут и минусы идут и значение не понятное, по ходу не правильно сделал?)
Изображения
Тип файла: png 2023-02-22_11-29-52.png (28.3 Кбайт, 40 просмотров)
vkn вне форума   Ответить с цитированием
Старый 22.02.2023, 12:42   #6
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 085
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Modbus master, переменные

Цитата:
Сообщение от vkn Посмотреть сообщение
По факту значение на выходе должно быть примерно 850, а тут и минусы идут и значение не понятное, по ходу не правильно сделал?)
А вы тут просто ничего не сделали) Никаких переворотов нет.

Чтобы перевернуть местами слова, вам нужно 0-15 выходы подключить к входам 16-31. А Выходы 16-31 к входам 0-15.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Благодарность от:
Старый 22.02.2023, 13:27   #7
vkn
Новичок
 
Регистрация: Feb 2023
Сообщения: 16
Благодарил(а): 9 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Modbus master, переменные

Цитата:
Сообщение от Arsie Посмотреть сообщение
А вы тут просто ничего не сделали) Никаких переворотов нет.
Действовал интуитивно))))

Чтобы перевернуть местами слова, вам нужно 0-15 выходы подключить к входам 16-31. А Выходы 16-31 к входам 0-15.
Вроде получилось, спасибо!
А для u64 little endian, как правильно сделать?
vkn вне форума   Ответить с цитированием
Старый 22.02.2023, 13:50   #8
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 085
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Modbus master, переменные

Цитата:
Сообщение от vkn Посмотреть сообщение
Вроде получилось, спасибо!
А для u64 little endian, как правильно сделать?
Прочесть 4 штуки INTEGER подряд. Это будут те самые 64 бита. Дальше делайте с ними что угодно.

Кстати, лонг также можно было прочесть двумя интами, но тогда вы бы не научились оперировать битами


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Благодарность от:
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать свои сообщения

BB code is Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +4, время: 02:49.


Версия vBulletin: 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2024