-
modbus RTU, real, swap (перестановка слов)
ПЛК-100(подчиненный) и панель оператора. Протокол modbus RTU
как переставлять слова местами (swap) при работе с real на ПЛК-100. Может гдето галочку поставить?
-
-
Супер Модератор
В разделе ПЛК\примеры программ и полезности есть пример, как обойтись работой с INT.
-
Если там умножить на 10 и передавать или принимать INT то не подходит.
в панель пересылаю состояния счетчиков по этому больше подходит DWORD. А в DWORD тоже надо переставить слова местами.
-
Супер Модератор
В Dword проще.
b:=dword_to_word (a);
c:=a/65535;
Дальше собираем.
А еще на форуме в примерах был такой пример с алгоритмом пересчета.
-
modbus RTU должен получть Dword. При настройке в конфигураторе 4байта без перестановки слов он получает только младшее слово, а старшее исчезает. При настройке 2 байта в первый записуется старшее слово а во второй младшее.
И по большому счету не охота около 120 переменных Real переганять через ф-ию которая разделит их на два байта. это получится около 220 переменных которым надо дать имена. А проще решалось бы если бы разработчики и панели и ПЛК учли эту особенность передачи Real и Dword в алгоритмах передачи и приема.
-
Byte Sequence (Порядок передачи байтов посылки) – значения выбираются из списка: «Native» (порядок байтов, используемый в ПЛК) и «Trace_mode» (порядок байтов, используемый в программе Trace mode). Значение по умолчанию – «Trace_mode». Параметр определяет, в каком порядке будут передаваться байты посылки протокола Modbus для переменных длиной
32 бита.
Жаль, что это предусмотрено только когда ПЛК master. В режиме slave эту функцию забыли положить или хотя бы в slave по умолчанию сделали «Native».
Последний раз редактировалось vitiali; 15.07.2011 в 22:49.
-
В один масив или структуру можно загнать когда переменные обладают одним признаком или отвечают за групу однотипных объектов. А когда одна отвечает за счетчик, вторая за температуру, третья за давление, четвертая держит коэфициент соотношений, пятая время, шестая.... и тд. А в HMI я не должен знать, что опрашиваю? Привык иметь одинаковые имена и в панели и в ПЛК.
Последний раз редактировалось vitiali; 15.07.2011 в 22:47.
-
Извините, что повторяюсь но хочется ответ от разработчика есть или нет, если будет то когда.
Byte Sequence (Порядок передачи байтов посылки) – значения выбираются из списка: «Native» (порядок байтов, используемый в ПЛК) и «Trace_mode» (порядок байтов, используемый в программе Trace mode). Значение по умолчанию – «Trace_mode». Параметр определяет, в каком порядке будут передаваться байты посылки протокола Modbus для переменных длиной
32 бита.
Жаль, что это предусмотрено только когда ПЛК master. В режиме slave эту функцию забыли положить или я не там ищу?
-
Супер Модератор
В режиме Slave этой функции нет, и в контроллерах с CoDeSys v.2 пока не планируем.
Ваши права
- Вы не можете создавать новые темы
- Вы не можете отвечать в темах
- Вы не можете прикреплять вложения
- Вы не можете редактировать свои сообщения
-
Правила форума