Просмотр полной версии : ПЛК100 + внешнее устройство на мк STM32
Добрый день! Возникла задача записывать данные в регистр ПЛК100 контроллером STM32 по интерфейсу RS485 (ModBus-RTU). Но никак не могу передать. В конфигураторе ПЛК100 добавил ModBus(Slave) RS485. Добавил двухбайтовый подэлемент и пытаюсь туда записать тестовое число. Но что то ничего не приходит(хотя данные с STM32 передаются как надо, проверял в Docklight-е). Возможно не правильно сформирован формат кадра. Я передаю следующую последовательность - 0x02 (адрес устройства) 0х10 (функция записи в регистры) 0х02 (количество бит данных) 0х64 0х01 (данные) 0х61 0хВВ (контрольная сумма). Возможно неправильно считаю контрольную сумму. считаю я контрольную сумму 0х10 0х02 0х64 и 0х01 байтов.
Евгений Дударев
02.03.2016, 15:27
Установите Modbus Tester. Он позволяет формировать посылку и отображает ее формат в своём окне.
мне одному что ли кажется что в посылке не указаны ни начальный адрес куда писать ни количество сколько регистров пишется, образец 16 команды можно здесь посмотреть https://ru.wikipedia.org/wiki/Modbus
Тогда я не совсем понимаю. Можете написать пожалуйста формат кадра для команды 16. Как я понял выглядеть он должен вот так: 0х02 0х10 0х06(адрес самого регистра куда собираюсь записывать) 0х01 (количество изменяемых элементов) 0х02 0х64 0х01 и СRC mlb СRC stb? Если не прав, поправьте пожалуйста.
ну на сайте где то по середине дан формат, на адрес и количество отводятся по два байта
Тогда я не совсем понимаю. Можете написать пожалуйста формат кадра для команды 16. Как я понял выглядеть он должен вот так: 0х02 0х10 0х06(адрес самого регистра куда собираюсь записывать) 0х01 (количество изменяемых элементов) 0х02 0х64 0х01 и СRC mlb СRC stb? Если не прав, поправьте пожалуйста.
Делал макрос на Си для панели СП270/СП300
22949
См. строки с 4 по 15 - расписан формат 16 команды
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot