 | |
Предыдущие результаты
VDT Industrial Automation является официальным авторизованным дистирбютором Rockwell Automation.
Вы можете запросить копию сертификата в любом из наших представительств или соответствующее официальное подтверждение в Rockwell.
|
[quote:52216ef82b="ferzio"]В этом и загвоздка. На LADах проблем написать нету. Просто есть уже наработки на Си и перенести это на ST легче, чем на графические языки.
Посмотрел настройки модулей - нашел только на AIшки, возможно из-за того что всё железо довольно бюджетное. Плюс "пользовательских" настроек в том что их можно переносить с контроллера на контроллер (независимо от производителя и типа модулей).
По поводу размера программы - в 20 раз это существенно. Сам написал ~20 строк когда на ST и перевел этот код на LAD. Код ST оказался на 3 с лишним Кбайт тяжелее ([/quote:52216ef82b]
Для Logix - LD самый быстрый и легкий (по отношению к памяти).
Использование FB и AOI минимизируй, т.к. для каждой команды создается своя структура (будет расход памяти).
[code:1:52216ef82b]BST XIC a OTE b NXB XIC c OTE d NXB XIC e OTE f BND [/code:1:52216ef82b]экономит память по сравнению с тремя отдельными строками.
Этот эффект был обнаружен для MicroLogix 1000 и было очень актуально.
|
В этом и загвоздка. На LADах проблем написать нету. Просто есть уже наработки на Си и перенести это на ST легче, чем на графические языки.
Посмотрел настройки модулей - нашел только на AIшки, возможно из-за того что всё железо довольно бюджетное. Плюс "пользовательских" настроек в том что их можно переносить с контроллера на контроллер (независимо от производителя и типа модулей).
По поводу размера программы - в 20 раз это существенно. Сам написал ~20 строк когда на ST и перевел этот код на LAD. Код ST оказался на 3 с лишним Кбайт тяжелее (
|
Ну если на человечном, то памяти никогда не будет хватать. 95% АСУТП-х задач пишутся на LD и FB.
А что имелось ввиду под типовыми задачами(обработка Di, Do, Ai ...)?
[quote:b3eecbff34="ferzio"]оп .. что-то я тупанул, IL нету, LADы естественно есть.
На них я и собирался всю технологию писать. А вот типовые задачи (обработка Di, Do, Ai ...) хотелось написать на чем-то более человечном, типа ST[/quote:b3eecbff34]
|
оп .. что-то я тупанул, IL нету, LADы естественно есть.
На них я и собирался всю технологию писать. А вот типовые задачи (обработка Di, Do, Ai ...) хотелось написать на чем-то более человечном, типа ST
|
Спасибо! Фишку UDDT уже уловил и активно этим пользуюсь.
А вот про языки стало для меня открытием.
Слыхал мнения тру-асушников что не стоит программировать контроллер на ST и Cи, но не сталкивался с доказательствами. Вот пожалуй первая ласточка.
Тогда вопросы вдогонку по языкам на AB: IL - исходник копируется в контроллер?
Нет случайно возможности конвертации одного языка в другой?
И почему такая несправедливость к ST :o
|
[quote:841c8cbc95="ferzio"]
Что сразу приходит на ум, так это компановка переменных. Битовые переменный хранить в массиве DINTa.
Ужимать DINTовские переменные в INTы смысла нету, т.к. весить они будут все равно 4байта.
[/quote:841c8cbc95]
Ну это совершенно не так. Просто надо пользоваться предусмотренными для этих целей инструментами, а именно "User Defined Data Types".
Структуры выравниваются по четырем байтам, но внутри все упаковывается плотно (конечно, если не будете чередовать байты и реалы). Поэкспериментируйте с ними и всё станет понятно, при сохранении сразу размер расчитывается и показывается.
[quote:841c8cbc95="ferzio"]
Заметил, что комментарии тоже занимают место в памяти (для возможности полноценной выгрузки проекта).
[/quote:841c8cbc95]
Настоящие программисты-асушники пишут на чём правильно, а не на чём легче :crazy:
Пишите на Ladder, а не на ST - и комментарии и исходник будут исключительно в файле проекта на компе, а в контроллере только компактный программный код.
:P
ЗЫ
и исполняться программа будет в разы быстрее :wink:
|
Можно и дальше в угадайку играть, или может всё-таки автор темы приведет реальные цифры?
повторяю, для прояснения ситуации требуется данные о том, как сконфигурирована команда на опрос и какой номер ошибки возникает, когда не работает:
чего у вас прописано в MCM.CONFIG.Port1MasterCmd[0,1,2...]
и чего вы видите в MCM.DATA.ReadData[ххх], где ххх - это адрес куда пишутся ошибки с порта (MCM.CONFIG.Port1.CmdErrPtr)
Предельное ограничение регистров в одном запросе 127, это обусловлено самим протоколом ModBus
У MCMR отличие только в уменьшенном размере блока данных, котором он обменивается с процессором (чтобы не занимал весь ControlNet-овский пакет)
|
[quote:f0ecfd6c7f="Ludmila"]Модуль это виноват или счетчик?[/quote:f0ecfd6c7f]
Возможно я ошибаюсь, но мне предсталяется, что виноват тот, кто применил MVI56-MCMR вместо нормального MVI56-MCM.
MVI56-MCMR - это Modbus Master/Slave Enhanced Communications Interface Module [i:f0ecfd6c7f]with Reduced Data Block[/i:f0ecfd6c7f].
[quote:f0ecfd6c7f]The MVI56-MCMR module pages data in a block of 40 words at a time. The MVI56-MCM module pages data in a block of 200 words at a time.
[/quote:f0ecfd6c7f]http://www.prosoft-technology.com/kb/article.php?id=307
Модуль установлен в локальном шасси или в удаленном?
|
[quote:4b25758426="Ludmila"]
Что за ошибка "Protokol Error"?
Модуль это виноват или счетчик?[/quote:4b25758426]
Нет такой ошибки у МСМ, есть группа ошибок "Modbus proto[b:4b25758426][u:4b25758426]C[/u:4b25758426][/b:4b25758426]ol errors"
Тут телепатов нет, где вы увидели именно такую ошибку???
МСМ всегда выдает исключительно код ошибки (число), которое можно расшифровать заглянув в руководство пользователя.
Если хотите, чтоб вам реально помогли, то приводите чего у вас прописано в MCM.CONFIG.Port1MasterCmd[0,1,2...]
и чего вы видите в MCM.DATA.ReadData[ххх], где ххх - это адрес куда пишутся ошибки с порта (MCM.CONFIG.Port1.CmdErrPtr)
ps
на сайте производителя вашего счётчика мне не удалось найти карту регистров, поэтому ее тоже приведите[/u]
|
Предыдущие результаты
Ещё результаты |
|
| |
|