Segnetics

Вернуться   Segnetics > Форум Segnetics > SMLogix

SMLogix Вопросы о работе в среде SMLogix и о FBD-программировании

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.07.2019, 00:58   #91
PA3JlUBHOE
Member
 
Регистрация: Jun 2012
Адрес: СПб
Сообщения: 77
Благодарил(а): 7 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Цитата
Сообщение от ViS Посмотреть сообщение
Что-то надоело каждый раз по макросам шариться и биты искать-смотреть, когда при допиле конструкторской программы приходится код CPU менять. А по сему вот - простенький макрос дешифратор-шифратор кода, и экселевский листик для оффлайна. Авось сгодится кому.

Вложение 5189
Вложение 5190

Что-не так в подсчетах нового кода. При выставлении одинаковых битов старый и новый коды не совпадают.
Миниатюры
Нажмите на картинку для увеличения

Название:  код CPU.jpg
Просмотров: 345
Размер:  249.1 Кбайт  
PA3JlUBHOE вне форума   Ответить с цитированием
Старый 11.07.2019, 08:55   #92
shalove
Новичок
 
Регистрация: Feb 2019
Адрес: SPb
Сообщения: 3
Благодарил(а): 2 раз(а)
Поблагодарили: 2 раз(а) в 2 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Много полезного!!!
shalove вне форума   Ответить с цитированием
Старый 16.07.2019, 07:36   #93
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Цитата
Сообщение от PA3JlUBHOE Посмотреть сообщение
Что-не так в подсчетах нового кода. При выставлении одинаковых битов старый и новый коды не совпадают.
Честно говоря, не понял, о чем речь. Все там так в подсчетах.

****
UPD. Дошло.. Первая строка в файлике, пустая - лишняя затесалась. Удалить ее.
Код CPU.zip

P.S. Админы, если можно, замените вложение в этом сообщении - https://forum.segnetics.com/showthre...2143#post42143

Последний раз редактировалось ViS, 16.07.2019 в 07:55
ViS вне форума   Ответить с цитированием
Старый 17.03.2020, 02:45   #94
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Ответ: Небольшие хотелки в SMLogix

Автомат на 32 состояния.

Вложение 7502
Вложение 7503
Миниатюры
Нажмите на картинку для увеличения

Название:  Автомат состояний.JPG
Просмотров: 308
Размер:  104.9 Кбайт  
Вложения
Тип файла: msl Автомат состояний-CL.msl (108.6 Кбайт, 66 просмотров)
ViS вне форума   Ответить с цитированием
Старый 17.03.2020, 20:32   #95
New
Senior Member
 
Регистрация: May 2009
Сообщения: 1 034
Благодарил(а): 9 раз(а)
Поблагодарили: 22 раз(а) в 22 сообщениях
По умолчанию Ответ: Небольшие хотелки в SMLogix

Цитата
Сообщение от ViS Посмотреть сообщение
Автомат на 32 состояния.
В 28 лоджике не работает?


__________________
RTFM
New вне форума   Ответить с цитированием
Старый 17.03.2020, 22:41   #96
младшой
Senior Member
 
Регистрация: May 2010
Адрес: Москва
Сообщения: 857
Благодарил(а): 4 раз(а)
Поблагодарили: 85 раз(а) в 66 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Должен был, если бы его сохранили в 28-ом.
младшой вне форума   Ответить с цитированием
Старый 17.03.2020, 22:48   #97
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Ответ: Небольшие хотелки в SMLogix

Цитата
Сообщение от New Посмотреть сообщение
В 28 лоджике не работает?
Работает.

Последний раз редактировалось ViS, 17.03.2020 в 23:11
ViS вне форума   Ответить с цитированием
Старый 17.03.2020, 23:34   #98
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Ответ: Небольшие хотелки в SMLogix

Цитата
Сообщение от ViS Посмотреть сообщение
Работает.
Упс. Ошибочка вышла. Тот только в 3.30, да.
В 3.28 работает версия v1.1.
Добавлен вход Mode: "0" на входе - при отключенном макросе на выход выводится результат последнего отработавшего сравнения. "1" на входе - при отключенном макросе на выход выводится Y Defalt.
Миниатюры
Нажмите на картинку для увеличения

Название:  Автомат.JPG
Просмотров: 141
Размер:  94.1 Кбайт  
Вложения
Тип файла: msl Автомат состояний 32х [v1.1] - CL.msl (97.6 Кбайт, 52 просмотров)
ViS вне форума   Ответить с цитированием
Благодарность от:
Старый 18.03.2020, 01:01   #99
младшой
Senior Member
 
Регистрация: May 2010
Адрес: Москва
Сообщения: 857
Благодарил(а): 4 раз(а)
Поблагодарили: 85 раз(а) в 66 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Состряпал свою версию.
Блоков меньше (19 против 26). Но с добавлением Mode вдохновение меня покинуло и концовочка получилась какая-то "скомканная".

Макрос может работать на всех контроллерах. Чем больше кол-во состояний, тем дольше обрабатывается. Следовательно, на SMH2010 и Пикселях следует быть осторожнее.

Сохранялась в Лоджике 3.28
Вложения
Тип файла: msl Автомат состояний 32х [v1.2]-CL.msl (128.4 Кбайт, 58 просмотров)
младшой вне форума   Ответить с цитированием
Благодарность от:
Старый 18.03.2020, 04:59   #100
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Цитата
Сообщение от младшой Посмотреть сообщение
Состряпал свою версию.
Блоков меньше (19 против 26). Но с добавлением Mode вдохновение меня покинуло и концовочка получилась какая-то "скомканная".

Макрос может работать на всех контроллерах. Чем больше кол-во состояний, тем дольше обрабатывается. Следовательно, на SMH2010 и Пикселях следует быть осторожнее.

Сохранялась в Лоджике 3.28
Mode там не скомканный, а в принципе не может работать - нет сохранения результата последнего сравнения. При выставлении Mode в "1" на остановленном макросе результат просто сбрасывается. И до запуска макроса, соответственно, имеем только Default. У меня щелканье Mоde-ом переключает между Default и последним результатом.

Некорректно работает при старте программы - если на входе число, не дающее совпадения, то на выход выводится значение первой строки таблицы совпадений, а должен быть Default. Не вдавался, почему так происходит. Дальше не копал уже.

Последний раз редактировалось ViS, 18.03.2020 в 05:25
ViS вне форума   Ответить с цитированием
Благодарность от:
Старый 18.03.2020, 08:11   #101
младшой
Senior Member
 
Регистрация: May 2010
Адрес: Москва
Сообщения: 857
Благодарил(а): 4 раз(а)
Поблагодарили: 85 раз(а) в 66 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Цитата
Сообщение от ViS Посмотреть сообщение
Mode там не скомканный, а в принципе не может работать - нет сохранения результата последнего сравнения. При выставлении Mode в "1" на остановленном макросе результат просто сбрасывается. И до запуска макроса, соответственно, имеем только Default. У меня щелканье Mоde-ом переключает между Default и последним результатом.

Некорректно работает при старте программы - если на входе число, не дающее совпадения, то на выход выводится значение первой строки таблицы совпадений, а должен быть Default. Не вдавался, почему так происходит. Дальше не копал уже.
По части Mode - вопрос дискуссионный, но пусть будет по-вашему.
Последнее замечание существенное.

Переделал (стало 20 блоков, в цикл добавился один).
Вложения
Тип файла: msl Автомат состояний 32х [v2.1]-CL.msl (131.8 Кбайт, 42 просмотров)
младшой вне форума   Ответить с цитированием
Старый 18.03.2020, 08:46   #102
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Воспользовался частично подходом Младшого, получилась v1.3.
20 блоков и работает побыстрее.

UPD. Хе, ну практически одинаково в итоге и получилось Почти
Вложения
Тип файла: msl Автомат состояний 32х [v1.3]-CL.msl (112.3 Кбайт, 62 просмотров)

Последний раз редактировалось ViS, 18.03.2020 в 09:14
ViS вне форума   Ответить с цитированием
Старый 18.03.2020, 13:19   #103
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Цитата
Сообщение от младшой Посмотреть сообщение
Следовательно, на SMH2010 и Пикселях следует быть осторожнее.
50 макросов в Пиксель 2511.
Самый быстрый вариант - обрабатываются 2 состояния - 67мс.
Самый долгий вариант - обрабатывается 32 состояния - 500мс.
Долгий вариант в SMH4 - 4мс.
ViS вне форума   Ответить с цитированием
Старый 09.04.2020, 08:58   #104
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 125
Благодарил(а): 239 раз(а)
Поблагодарили: 161 раз(а) в 153 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Цитата
Сообщение от ViS Посмотреть сообщение
Честно говоря, не понял, о чем речь. Все там так в подсчетах.

****
UPD. Дошло.. Первая строка в файлике, пустая - лишняя затесалась. Удалить ее.
Вложение 6327

P.S. Админы, если можно, замените вложение в этом сообщении - https://forum.segnetics.com/showthre...2143#post42143
добавьте свой макрос маски, а то косячить будет
Миниатюры
Нажмите на картинку для увеличения

Название:  2020-04-09 11-57-04 SMLogix - [команда cpu v1.msl].png
Просмотров: 281
Размер:  77.1 Кбайт  


__________________
C уважением, LordN
LordN вне форума   Ответить с цитированием
Старый 10.09.2020, 08:29   #105
Pushin
Senior Member
 
Аватара для Pushin
 
Регистрация: Nov 2017
Адрес: Новосибирск
Сообщения: 196
Благодарил(а): 15 раз(а)
Поблагодарили: 9 раз(а) в 9 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Цитата
Сообщение от PA3JlUBHOE Посмотреть сообщение
Данный макрос позволяет использовать векторный привод (трехпозиционный, 3х-позиционный, 3-points) вместо аналогового. Векторный обретает все преимущества аналогового привода.
При каждом запуске программы привод однократно калибруется в минимальное или максимальное положение (направление выбирается внутри макроса).
Когда входной сигнал <3% или >97%, то привод доворачивается в крайнее положение по 3 секунды раз в 5 минут.
Для исключения дергания привода вперед-назад введен гистерезис 1%.

Цитата
Сообщение от PA3JlUBHOE Посмотреть сообщение
Когда пройдут долговременные испытания - поделюсь. Пока неделю полёт нормальный)

Что-нибудь расскажете по результатам? Мысль довольно интересная, макрос хороший. Что показали испытания?


__________________
Пуш зе темпо
Pushin вне форума   Ответить с цитированием
Старый 10.09.2020, 10:31   #106
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 020
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Цитата:
Сообщение от Pushin Посмотреть сообщение
Что-нибудь расскажете по результатам? Мысль довольно интересная, макрос хороший. Что показали испытания?
Я в 2006 году такой делал и испытывал на объекте. У меня чуть лучше был алгоритм, т.к. полушаги учитывал и в "мат модели" учитывался люфт соединения привод/клапан.

Мой вариант был в принципе рабочий, но результат прям совсем не комильфо. Честный векторный регулятор гораздо стабильнее и быстрее.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 30.10.2020, 23:25   #107
4ertjaga_88
Senior Member
 
Регистрация: Apr 2013
Сообщения: 117
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

https://forum.segnetics.com/showthre...E6%E0%F2%E8%E5
А есть у кого аналоги, по ссылки модуль туго обрабатывает сигнал. При однократном нажатии, он еще пару сек думает, хотя DI = 500
4ertjaga_88 вне форума   Ответить с цитированием
Старый 31.10.2020, 00:41   #108
ATS
Senior Member
 
Регистрация: Aug 2013
Сообщения: 3 740
Благодарил(а): 12 раз(а)
Поблагодарили: 192 раз(а) в 188 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Цитата
Сообщение от 4ertjaga_88 Посмотреть сообщение
А есть у кого аналоги, по ссылки модуль туго обрабатывает сигнал. При однократном нажатии, он еще пару сек думает, хотя DI = 500
Это слишком много...

Цитата Рекомендованное время обоих DI равно 500 мсек, время задаётся в циклах системы.
При тике в 100 мсек DI= 5
ATS вне форума   Ответить с цитированием
Старый 23.11.2020, 00:57   #109
4ertjaga_88
Senior Member
 
Регистрация: Apr 2013
Сообщения: 117
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

не правильно выразился, DI конечно 5 ставил
4ertjaga_88 вне форума   Ответить с цитированием
Старый 23.11.2020, 11:39   #110
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 020
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Цитата
Сообщение от 4ertjaga_88 Посмотреть сообщение
не правильно выразился, DI конечно 5 ставил
Он ждёт даблклик отведённое вами время. Эту операцию невозможно ускорить, не в нашёй вселенной. Если число, установленное на входе, не совпадает с вашими ожиданиями (2 сек при установленных 500 мсек), это повод проверить, что у вас происходит с временем цикла.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 30.11.2020, 20:12   #111
MadKid
Member
 
Регистрация: Jun 2019
Адрес: Новосибирск
Сообщения: 76
Благодарил(а): 1 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Обмениваемся своими макросами

Вот вам макрос преобразования Long в 32-битный Real (он же Float).

Иногда возникает недопонимание при считывании чисел с плав. точкой из периферийных устройств. Вместо каких-то адекватных значений видим сумасшедший рандом. Это происходит из-за того, что сегнетикс и периферийное устройство могут хранить байты в разном порядке.

Для решения вопроса приходится считывать число, как Long, переставлять байты в нужном порядке, и потом преобразовывать в Real.

Сразу оговорюсь, что вот тут задача уже решена комплексно
https://forum.segnetics.com/showthread.php?t=461

Но, как мне показалось , там не совсем рациональная реализация.
В моём оптимизированном варианте все действия по возможности совершаются в "целом" виде, без умножений и делений (сдвигами и битовыми масками), и перевод в real делается на самых последних этапах.

Итого, у меня как минимум, отсутствует деление с плав. точкой, и присутствует только одно возведение в степень вместо двух.

П.С. Вопрос перестановки байтов вынесен за скобки, это задача, в которой оптимизировать нечего.
Вложения
Тип файла: msl IEEE754.msl (202.5 Кбайт, 59 просмотров)
MadKid вне форума   Ответить с цитированием
Благодарность от:
Старый 03.12.2020, 20:42   #112
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Макрос Инверсии цифр в числе.
1234567 преобразуется в 7654321.
Описание внутри.
Вложения
Тип файла: msl Инверсия цифр - CL.msl (32.7 Кбайт, 59 просмотров)
ViS вне форума   Ответить с цитированием
Старый 10.12.2021, 09:01   #113
kulepov
Senior Member
 
Регистрация: Apr 2016
Сообщения: 162
Благодарил(а): 0 раз(а)
Поблагодарили: 4 раз(а) в 2 сообщениях
По умолчанию Макрос из 3 PID

Макрос для трех PID работающих последовательно.
Сделал макрос состоящий из трех PID. Каждый из них можно подключать в работу в любой момент. Для каждого возможно установить свои I,P.
PIDы работают последовательно, один за другим.
Предусмотрена мертвая зона (когда значение равно уставке +/- мертвая зона, регулирование останавливается).
Данный макрос сделан по мотивам аналогичного из DESIGO. Им удобно пользоваться, когда в установке много контуров регулирования. Например нагреватель, охладитель, рекуператор, и еще доп нагреватель.
Макрос погонял на реальных объектах. Вроде работает. Прошу не судить строго, если что.
Вложения
Тип файла: msl 3PID r20.3.msl (476.1 Кбайт, 135 просмотров)
kulepov вне форума   Ответить с цитированием
3 благодарности(ей) от:
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать свои сообщения

BB code is Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли применять пустые макросы (нельзя) Gel Вопросы о программировании 35 08.04.2020 10:42
Размышления на тему групповых триггеров boxmen77 Вопросы о программировании 19 15.01.2020 17:39
Фильтрация аналогового сигнала СВМ Вопросы о программировании 15 02.12.2015 20:28
Модуль Z-4RTD2 от SENECA serg-el Примеры работы по Modbus 3 04.06.2015 18:11
Ремонт Aout своими силами (решено) alexprophet Вопросы о Pixel 10 31.10.2013 13:23


Часовой пояс GMT +4, время: 04:13.


Версия vBulletin: 3.8.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2023