 | |
Предыдущие результаты
через -[S:FS]- генерировать сигнал аварии и инкрементировать счетчик (это если надо считать количество перезагрузок).
Упс, тормоз. Это справедливо для ControlLogix. Для 830/850 не скажу.
|
Без сомнения может.
Вот даже примерная конфигурация сети
[img:7634fb8dd1]http://saveimg.ru/pictures/12-03-13/fb13d65cd220a31b0e210ec743e2bf4f.jpg[/img:7634fb8dd1]
|
Что такое тиристоры?
-------
[URL=http://www.polygraf.com.ua/vizitki.html]качественная печать визиток киев[/URL]
|
[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 и было очень актуально.
|
Все эти настройки как правило относятся к свойствам модулей. Поверьте их там много. И их можно менять на ходу.
Видел такой пример. Программа писалась для одного обьекта, т.е исходные условия были абсолюно одинаковыми. Первый писал на LD и FB. Второй писал на структурном тексте как вы. У 1-го обьем 50КВ, у 2-го 1МВ!!!!!!. Время выполнения соответственно различалось пропорционально, при том что это был критический параметр.
Вы пытаетесь подменить разработчикой системы.
Еше. Программа написанная простым способом, будет понятна всем. Программа написанная вашим способом, будет понятна только вам.
[quote:cf831769a7="ferzio"]Типовые задачи ( Di, Do, Ai ...) - задачи для гибкой настройки соответствующих сигналов Di, Do, Ai ... (инверсии, фильтрации, возможность маскирования, различные поправочные коэф. и еще миллиард настроек .. ), которые присутствуют во всех проектах, независимо от технологии[/quote:cf831769a7]
|
Ну если на человечном, то памяти никогда не будет хватать. 95% АСУТП-х задач пишутся на LD и FB.
А что имелось ввиду под типовыми задачами(обработка Di, Do, Ai ...)?
[quote:b3eecbff34="ferzio"]оп .. что-то я тупанул, IL нету, LADы естественно есть.
На них я и собирался всю технологию писать. А вот типовые задачи (обработка Di, Do, Ai ...) хотелось написать на чем-то более человечном, типа ST[/quote:b3eecbff34]
|
[quote:841c8cbc95="ferzio"]
Что сразу приходит на ум, так это компановка переменных. Битовые переменный хранить в массиве DINTa.
Ужимать DINTовские переменные в INTы смысла нету, т.к. весить они будут все равно 4байта.
[/quote:841c8cbc95]
Ну это совершенно не так. Просто надо пользоваться предусмотренными для этих целей инструментами, а именно "User Defined Data Types".
Структуры выравниваются по четырем байтам, но внутри все упаковывается плотно (конечно, если не будете чередовать байты и реалы). Поэкспериментируйте с ними и всё станет понятно, при сохранении сразу размер расчитывается и показывается.
[quote:841c8cbc95="ferzio"]
Заметил, что комментарии тоже занимают место в памяти (для возможности полноценной выгрузки проекта).
[/quote:841c8cbc95]
Настоящие программисты-асушники пишут на чём правильно, а не на чём легче :crazy:
Пишите на Ladder, а не на ST - и комментарии и исходник будут исключительно в файле проекта на компе, а в контроллере только компактный программный код.
:P
ЗЫ
и исполняться программа будет в разы быстрее :wink:
|
Что это за такая программа у вас? Сколько ввода/вывода?
[quote:d6babe4c0f="ferzio"]Добрый день!
Столкнулся с проблемой, с которой, думаю, сталкивался любой программист-асушник. Нехватка пользовательской памяти.
Имеется контроллер CompactLogix L31. 512Кбайт на борту. Как оказалось это очень немного (
Что сразу приходит на ум, так это компановка переменных. Битовые переменный хранить в массиве DINTa.
Ужимать DINTовские переменные в INTы смысла нету, т.к. весить они будут все равно 4байта.
Заметил, что комментарии тоже занимают место в памяти (для возможности полноценной выгрузки проекта).
Может кто поделится опытом, к каким приемам прибегаете вы в данных случаях (кроме как покупка более мощного контроллера))[/quote:d6babe4c0f]
|
И еще вопрос вдогонку. Я правильно понял, CompactFlash нужна только для резервного хранения проекта и в экономии памяти это нам никак помочь не может?
|
[quote:0a6f224fa4="Naitek"] Формирую строку запроса, отправляю устройству (хочу считать дату и время, в каких регистрах они хранятся мне известно). Отправляется запрос без проблем, но устройство в ответ ничего не посылает!
[/quote:0a6f224fa4]
Ну если MCM опрашивает нормально, значит в устройстве протокол ModBus и было бы не плохо уточнить какой именно (RTU или ASCII)
В любом случае протокол ModBus накладывает строгие требования к запросам и ответам. Если с проводами и параметрами передачи (номер порта, скорость, четность, стоповые биты) всё на 100% проверено, то отсутствие ответа от устройства означает одно - [b:0a6f224fa4]неправильно сформирован или неправильно послан запрос![/b:0a6f224fa4]
Ещё имеет смысл проверить установку джамперов для режима работы портов (RS232/422/485).
Также не следует забывать, что в режиме работы по RS232 интерфейсу с устройством необходимо соединяться ноль-модемным кабелем.
|
Предыдущие результаты
Ещё результаты |
|
| |
|