 | |
Предыдущие результаты
Проект запоролен в контроллере, при вызове проекта в RSLogix 500 из
SLC 5/03 требует пароль.
Проект есть только в SLC 5/03 (контроллере), на другом каком либо носителе он отсутствует, его не извлечь, так как он под паролем или я что-то не догоняю .С УВАЖЕНИЕМ ANDREI.
|
Привет всем!
Насчет масок, здесь вопросов не возникает. Так-же рекомендую просмотреть инструкции секвенсоров, может в Вашей программе они подойдут.
А вот насчет применения циклов, то могу сказать следующее:
1. Стандартный цикл с одной инструкцией в теле быстрее выполняется в ST.
2. Если в тело цикла FOR добавим шаг, где проверяется индекс с граничным значением (в ST IF...THEN, в LD LES), потом, если условие истинно к индексу прибавляем шаг цикла и повторяем инструкцию, то выполнение в LD будет существенно быстрее, чем в ST. Особенно, если несколько таких шагов последовательно, в 1,5 - 2 раза LD быстрее, чем ST. В ST увеличение кол-ва подобных шагов ведет к увеличению времени выполнения (скорее всего, в ST выполнение конструкции IF...THEN равнозначно переходу в п/п).
3. Ну уж если вообще хотим быстро - быстро выполнить цикл, то в LD есть инструкции программного управления JMP and LBL. Особенно при добавлении вышеуказанных шагов в программу.
4. Конструкции Whil...DO and Repeat...Until не показали существенных отличий.
5. Если в теле FOR много инструкций (я тестировал MOV, DINT, DINT до 14 операций в одном цикле (шаге)), то большой разницы во времени выполнения разными способами я не увидел.
Проверял на L32E, так что про RSLogix500 и SLC5/04 ничего не могу сказать.
|
Всем привет!
Такой вопрос: :)
Контроллер SLC5/04. Есть 7 слотов вывода, по 32 выхода на каждом.
Выводы могут находиться в разных режимах - гореть/не гореть, или мигать с частотами 2 и 8 Гц.
Думаю реализовать это [i:b66bbbf283]перебором всех выходов по одному [/i:b66bbbf283](цикл с косвенной адресацией), и зажигать в соответствии с их режимом.
Но боюсь, что выполнение этого цикла займет много времени.
Есть ли способы это реализовать по другому?
Есть ли возможность измения выходов по маске?
Плохо разобрался с возможностями RSlogix'a. :roll:
ПО RSlogix500.
|
Привет всем!
[quote:604299e6d3]Ставилось это случаем не из под пользователя с кириллическим именем?
Давно замечено, что роквеловский софт ОЧЕНЬ не любит путей с русскими буковками.[/quote:604299e6d3]
Помнится, когда-то поднимался вопрос о кириллице и переменных. Тогда советовалось, если переменные среды через кириллицу, то переназначить их по-своему. Мы тогда стали делать это на разных объектах, но потом прекратили, т.к. не заметили разницы. RSLogix5000 v.15, RSLinx 2.5, RSView32 CPR6.
А насчет реестра... Я в свое время эксперементировал с защитой RSLogix5000, что-то не вышло, удалил софт, но последующие установки уже ругались на введенные защиты. В реестре удалял все, что только можно связать с ПО RS, полностью удалял и ставил все софты RS, но осталась какая-то запись в реестре, что Logix ругался на защиту. Пришлось заново винду ставить. (по дурости не делал перед экспериментом копию реестра, сравнение с реестрами др. машин не дала результата).
А вы случайно, перед этим не сносили неудачной установки RSLinx? Может, есть какая-нибудь параллель с моим случаем?
|
Меня интересует PID регулятор встроенный в RSLogix 500. Ваши рекомендации, стоит ли его использовать, или писать самому. Если есть реальный пример, то просьба его где нить выложить, буду благодарен.
Объект: Насосная станция с необходимостью регулирования давления или расхода, в зависимости от того как укажет оператор. Регулирующий орган - регулирующая задвижка с дискретными сигналами управления открытия и закрытия.
|
Тем кто меня уже знает:
[i:f18e06f8b5]Потихоньку разбираюсь :) . Спасибо всем за помощь.[/i:f18e06f8b5]
Опишу, что получается:
Отправляю/принимаю команды от эмулятора Sicam следующим образом.
[u:f18e06f8b5]Прием от Sicam:[/u:f18e06f8b5]
Ожидаю появление в ком. модуле по адресу M1:4200
значения "Block ID"=9903 (пришло сообщение). Далее обрабатываю адреса M1:4202-4215 (само сообщение):
[code:1:f18e06f8b5]
4200 Block ID 9903 - было событие
4201 Event Count (1)
0 4202 Session Index (=0)
1 4203 Sector index (=0)
2 4204 COT причина передачи
3 4205 Reserv (=1)
4 4206 Point Index номер команды
5 4207 Database адрес передаваемого значения, № бита после M1:0
6 4208 ASDU Type тип передаваемой величины
7-10 4209
-4212 Time временная метка
11 4213 Qualifier квилификатор
12 4214,
13 4215 Value передаваемое значение
[/code:1:f18e06f8b5]
[u:f18e06f8b5]Передача в Sicam:[/u:f18e06f8b5]
В ком. начиная с адреса M1:4100 записываю следующий блок:
[code:1:f18e06f8b5]
4100 Block ID 9901 - отправка сообщения
4101 Command Count (1)
0 4102 Database адрес передаваемого значения, № бита после M1:0
1 4103 Session Index (=0)
2 4104 Sector index (=0)
3 4105 Data Type тип данных
4 4106 Point Index номер команды
5 4107 Qualifier квилификатор
[/code:1:f18e06f8b5]
[b:f18e06f8b5]Напротив некоторый полей, в скобках, указаны их значения. Назначение этих полей мне пока не ясно. :(
Все ли я делаю так, и что еще нужно предусмотреть?[/b:f18e06f8b5]
На всякий случай еще раз про...
[b:f18e06f8b5]Состав моего контроллера:[/b:f18e06f8b5]
- CPU SLC 5/04
- ком. модуль MVI46-101M (Master)
- и модули I/O
ПО RSLogix500.
Подразумевается общение с Sicam по протоколу IEC 60870-5-101.
|
Обрати внимание на CompactLogix 1768-L43 (http://www.ab.com/programmablecontrol/pac/compactlogix/controller.html) или см. http://vdt-automation.com.ua/modules.php?name=News&file=article&sid=77&mode=&order=0&thold=0
[quote:9e41dc42f2]Можно ли где-нибудь посмотреть пример программы позиционирования с обратной связью, желательно на языке ЛД?[/quote:9e41dc42f2]
С RSLogix5000 поставляются примеры программирования.
[quote:9e41dc42f2]Точность 0,05-0,1мм. Шаг резьбы 2мм.[/quote:9e41dc42f2]
Шаг винта маленький, так что требуемая точность достижима очень легко - правильно выбери енкодер. Я такую точность получал с большим шагом винта и без сервопривода (частотный привод + енкодерный модуль + аналоговый выход). Но мне не нужна была точность следования, только конечная точка.
|
Для общения с SICAM:
- CH0 () перевести в режим USER
- командами из категории ASCII программировать обмен
Неудобство - теряешь связь RSLogix500<>SLC по RS-232 DF-1.
Тебе для отладки стоит иметь Online с контроллером.
Значит надо приобретать у AB карту на DH+ (накладно) или 1746-BAS-T (имеет порт RS-485 и дешевле Prosoft) или у Prosoft-Technology MVI46-GSC или MVI46-ADM (имеют порты RS-232 или RS-485).
IEC 101 это не сокращение от IEC 60870-5-101?
Prosoft-Technology производит MVI46-101M (Master) и MVI46-101S (Slave) для IEC 60870-5-101.
|
Уважаемый Николай!
Фактически для работы с энергонезависимой памятью у RSLogix 500 в меню Comms есть подменю EEPROM и команды "Store to EEPROM" для заливки программы в память и "Load from EEPROM" для считывания записанной программы. Одной из интересных возможностей данной функции является то, что записывать программу в энергонезависимую память не обязательно именно на том контроллере, на котором это будет работать. Соотвественно и модулей в корзинах может быть разное количество. Т.е. фактически берем корзину без модулей входов/выходов, только с процессорным модулем, и заливаем в карту нужную программу. Затем переставляем карту к нужному контроллеру и наслаждаемся :). Единственное, процессорные модули должны быть однотипные.
|
[u:c54b86d0c4]Есть программа работающая с одним элементом МЩ[/u:c54b86d0c4],
обрабатывающая нажатия кнопок на нем, индикацию состояния, а также передачу команд другому контроллеру по RS485.
В конечном итоге [u:c54b86d0c4]требуется программа работающая с 30 аналогичными элементами[/u:c54b86d0c4].
Каждому элементу соответствуют свои адреса контактов модулей ввода/вывода и свои адреса команд для общения с другим контроллером.
[b:c54b86d0c4]Пожалуста, подскажите как бы это реализовать?[/b:c54b86d0c4]
(контроллер SLC 5/04, ПО RSLogix500)
|
Предыдущие результаты
Ещё результаты |
|
| |
|