Здравствуйте! Столкнулся с двумя проблемами при программировании ПЛК304. Хотелось бы получить некоторую помощь в их решении.

№1: пытаюсь организовать обмен между ПЛК и модулями расширения входов/выходов (9 штук) через порт RS485 по протоколу Modbus RTU; на основании доступных примеров написал программу на SFC, в которой начальный шаг - открытие порта; каждый из последующих шагов - считывание/запись состояния входов/выходов отдельного модуля; условие перехода к следующему шагу, т.е. к опросу следующего модуля, - флаг завершения операции опроса (done) предыдущего модуля; опрос производится циклически с проверкой состояния порта в каждом цикле. С дискретными модулями проблем нет (вернее, те что были, решил) - обмен происходит нормально, а вот с модулями аналогового ввода - заминка. Дело в том, что при опросе модуля, у которого на одном из входов произошел обрыв датчика, флаг завершения опроса всех входов не устанавливается в TRUE, и как следствие, происходит зацикливание программы на данном шаге.

№2: этот же контроллер (ПЛК304) в качестве слейва соединяется у меня со SCADA Movicon 11.1 по Modbus TCP/IP. Связь сконфигурировал, связал - работает: передаются регистры и в одну и в другую сторону; а вот с передачей отдельно битовых сигналов - проблема. Интересует, возможно ли в ПЛК304 обращаться к отдельным битам в составе регистра, и как устроена адресация памяти в контроллере? В теххподдержке г. Харькова мне сказали, что по Ethernet вообще нельзя передавать отдельно биты, а только регистры, но у меня уже есть подобный рабочий проект (с той же SCADA, только на ПЛК110), в котором я с успехом организовал обращение и к битам, и к байтам, и к регистрам в памяти контроллера напрямую (без операций "распаковки" и "упаковки" регистров).

Заранее благодарю.