PDA

Просмотр полной версии : ПЛК 160. Ошибка 3729



LamSer
04.12.2014, 09:07
Создавая проект для ПЛК160 столкнулся с этой ошибкой. В проекте плк160 должен принимать много данных с панели СП270 по RS-485. Всего параметров 114, для каждого была создана сетевая переменная. При попытке скомпилировать на эмуляторе программу была выдана ошибка 3729 на все сетевые переменные начиная с 26.
Не хватает памяти в контролере? Можно ли поставить какой-нибудь модуль доп памяти?Или это моя программная ошибка? Как решить эту проблему?
Для наглядности прилагаю сам проект.

petera
04.12.2014, 09:57
Создавая проект для ПЛК160 столкнулся с этой ошибкой. В проекте плк160 должен принимать много данных с панели СП270 по RS-485. Всего параметров 114, для каждого была создана сетевая переменная. При попытке скомпилировать на эмуляторе программу была выдана ошибка 3729 на все сетевые переменные начиная с 26.
Не хватает памяти в контролере? Можно ли поставить какой-нибудь модуль доп памяти?Или это моя программная ошибка? Как решить эту проблему?
Для наглядности прилагаю сам проект.
1. Вам нужен ПЛК160-M, в ПЛК160-L ограничен на размер области ввода/вывода до 360 байт.
2.С таким количеством модулей(114 шт.) в одном Universal Modbus device "Панель СП270" "тормоза" обмена с панелью Вам гарантированы:rolleyes:
Лучше сразу сделайте панель мастером, а в ПЛК используйте для связи с панелью Modbus slave с портом RS232 можно даже RS232 Debug.
Прочитайте тему http://www.owen.ru/forum/showthread.php?t=19466 до конца. Хотя там про ПЛК+ИП320, но и СП270 будет тоже самое.

amn
04.12.2014, 14:11
Еще можно уменьшить количество регистров для обмена с панелью. Если на один экран панели надо выводить не много информации, то фактически Вам нужно регистров не более, чем количество отображаемых переменных на одном экране плюс 1 регистр для кнопок и индикаторов, 1 регистр для чтения номера экрана панели и 1 регистр записи номера экрана (если нужно изменить экран программно из контроллера). Панель отображает какой-нибудь экран. Номер этого экрана записан в соответствующем регистре. Плк читает этот номер и подсовывает в одни и те же регистры нужные значения для текущего экрана панели. Значения REAL можно передавать как INT, а в панели при отображении указывать сколько знаков после запятой, тогда уменьшится потребность в памяти еще в 2 раза.

Yegor
04.12.2014, 14:54
Если на один экран панели надо выводить не много информации, то фактически Вам нужно регистров не более, чем количество отображаемых переменных на одном экране плюс 1 регистр для кнопок и индикаторов, 1 регистр для чтения номера экрана панели и 1 регистр записи номера экранаЯ бы добавил ещё один регистр, который считывался часто и содержал номер последнего изменённого параметра. Соответствующий этому номеру регистр считывался бы вне очереди. Тормоза были бы только один раз при загрузке.

Валенок
04.12.2014, 15:16
А я сделал бы пару стрингов (туда и сюда) по команде и всё

petera
04.12.2014, 15:52
А я сделал бы пару стрингов (туда и сюда) по команде и всё
+100500:)
Но слейв в ПЛК все же лучше (ИМХО).