Соединил два ПЛК-100 и хочу считать регистр из Slave. СОМ-порт нормально открывается, с номерами регистров и другими настройками тоже давно разобрался, но возникает такая же ошибка таймаута, потому что устройства не могут между собой связаться и вечное ожидание RX_WAIT происходит, даже старт-бит не приходит ) Программа уже написана, но не могу пока грамотно связать два устройства... Проблема как понимаю может быть из-за: 1) настроек в Slave и Master, 2) неисправном кабеле 232 или 485 интерфейса. А ещё из-за чего? На что бы посоветовали обратить внимание?
Насчёт того куда приходят данные. Открываете блокнотом овеновскую библиотеку Modbus, там всё русскими комментариями расписано. Ищите нужный вам ФБ по имени и среди языка ST можно разглядеть, что Buffer[4] это старший байт значения, Buffer[5] младший - в зависимости от ФБ найти нужное.
Автоматизирую, как завещал нам Генри Форд
Валенок, маркер-старт будет привычнее звучать? В последовательной передаче он называется старт-бит, тем более StartFrame: BOOL; Не придирайтесь.
а по существу ответить никак? Какая разница где я код посмотрю, я вообще в view64 глядел, потому что оформление приятнее.Сообщение от Валенок
Автоматизирую, как завещал нам Генри Форд
Задача простая, есть два ПЛК-100.24.К.М., которые соединены по RS-485, нужно записать регистр в устройсве Slave и считать из него другой регистр. Пробовал сделать как написано в примерах "Modbus запись Int и Real (FBD)" и чтение, но таким способом не получилось. Сделал через конфигурацию ПЛК, где в Master просто добавил Universal Modbus Device, и в нём Register Input Module и Register Output Module. Через них всё заработало, а программно никак )
Номер СОМ-порта в примерах указан как нулевой для 485 интерфейса, поэтому Кодесис при подключении всегда пишет Invalid и из-за этого нельзя посмотреть результат своей программы. В библиотеке SysLibCom.lib в типах данных указано
TYPE PORTS : (COM1:=1, COM2, COM3, COM4, COM5, COM6, COM7, COM8);
Но везде в примерах пишут 0. У меня RS-485 через СОМ1 заработал.
5 мс на обоих, пробовал менять, не повлияло. Для простых задач 1 мс было бы достаточно?Сообщение от Валенок
Последний раз редактировалось Максим Tomahawk; 26.07.2011 в 08:49.
Автоматизирую, как завещал нам Генри Форд