Segnetics

Вернуться   Segnetics > Форум Segnetics > Вопросы о программировании

Вопросы о программировании Вопросы, касающиеся программирования на FBD

Ответ
 
Опции темы Поиск в этой теме
Старый 15.09.2017, 11:52   #481
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 102
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: FBD чайникам

Цитата:
Сообщение от GTS Посмотреть сообщение
Попробовал на Триме, то же самое не активируется.
У меня норм всё. Поле редактируется прекрасно.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 15.09.2017, 12:23   #482
GTS
Senior Member
 
Регистрация: Jun 2017
Сообщения: 161
Благодарил(а): 3 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: FBD чайникам

Цитата:
Сообщение от Arsie Посмотреть сообщение
У меня норм всё. Поле редактируется прекрасно.
Пардон, в Триме работает, в SMH4 только в свойствах контроллера - сетевые интерфейсы. А в свойствах slave нет.
GTS вне форума   Ответить с цитированием
Старый 15.09.2017, 18:29   #483
New
Senior Member
 
Регистрация: May 2009
Сообщения: 1 034
Благодарил(а): 9 раз(а)
Поблагодарили: 22 раз(а) в 22 сообщениях
По умолчанию Ответ: FBD чайникам

Цитата:
Сообщение от ailcat Посмотреть сообщение
Нет, но "ноги растут" оттуда же.
Это понятно. Мне кажется вы изначально выбрали не очень правильный способ реализации, отсюда и последовавшие проблемы.


__________________
RTFM
New вне форума   Ответить с цитированием
Старый 17.10.2017, 18:14   #484
HWAK
Member
 
Регистрация: Nov 2015
Сообщения: 57
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: FBD чайникам

Как реализовать запись значения в блок ARRAY по изменению этого значения на входе, при этом, чтобы значение не сбросилось в 0 при первом включении, когда на входе блока висит 0?
HWAK вне форума   Ответить с цитированием
Старый 17.10.2017, 18:18   #485
Gromov
Уволен из Сегнетикс
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: FBD чайникам

Fronts из библиотеки разработчика и проверку условия неравности нулю при первом включении. Её можно сделать из компаратора и парочки логических операций.

Имейте в виду, что количество перезаписей EEPROM ограничено, и при неумелом использовании этого блока вы можете получить неработающий контроллер за несколько часов.


__________________
В сегнетиксе не работаю с самого начала 2019 года.
Gromov вне форума   Ответить с цитированием
Старый 19.10.2017, 16:45   #486
AlexSku
Senior Member
 
Регистрация: Oct 2017
Адрес: Москва
Сообщения: 183
Благодарил(а): 21 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: FBD чайникам

Смотрю стандартный проект. Вижу блок "Интерфейс с АТ". Кто такой АТ?
AlexSku вне форума   Ответить с цитированием
Старый 19.10.2017, 19:11   #487
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 102
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: FBD чайникам

Цитата:
Сообщение от AlexSku Посмотреть сообщение
Смотрю стандартный проект. Вижу блок "Интерфейс с АТ". Кто такой АТ?
AutoTuning.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 23.10.2017, 17:06   #488
HWAK
Member
 
Регистрация: Nov 2015
Сообщения: 57
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: FBD чайникам

Цитата:
Сообщение от Gromov Посмотреть сообщение
Fronts из библиотеки разработчика и проверку условия неравности нулю при первом включении. Её можно сделать из компаратора и парочки логических операций.

Имейте в виду, что количество перезаписей EEPROM ограничено, и при неумелом использовании этого блока вы можете получить неработающий контроллер за несколько часов.
Получилось вот так. При этом исполнении есть ли какие подводные камни, в виде несанкционированных перезаписей блока?

HWAK вне форума   Ответить с цитированием
Старый 23.10.2017, 17:31   #489
Gromov
Уволен из Сегнетикс
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: FBD чайникам

Цитата:
Сообщение от HWAK Посмотреть сообщение
Получилось вот так. При этом исполнении есть ли какие подводные камни, в виде несанкционированных перезаписей блока?
1) сдвиньте блок eeprom вправо либо выровняйте по левому краю с блоком fronts, чтобы не было желтой связи между ними.
2) Всё зависит от того, что за данные приходят на "вход". Если там показания какого-нибудь датчика - то писать они будут каждые 100мс.

Что за данные у вас подаются на вход?


__________________
В сегнетиксе не работаю с самого начала 2019 года.
Gromov вне форума   Ответить с цитированием
Старый 23.10.2017, 17:56   #490
HWAK
Member
 
Регистрация: Nov 2015
Сообщения: 57
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: FBD чайникам

Цитата:
Сообщение от Gromov Посмотреть сообщение

Что за данные у вас подаются на вход?
Значение уставки из меню настроек. Хочу написать свой макрос расписания, за основу взял алгоритм от ТРМ133 + свои доработки.

А что значит желтая связь и чем она опасна?
Кажется понял, там порядок следования блоков меняется, при выравнивании получается в соответствии с потоком данных.
HWAK вне форума   Ответить с цитированием
Старый 23.10.2017, 18:30   #491
Gromov
Уволен из Сегнетикс
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: FBD чайникам

Цитата:
Сообщение от HWAK Посмотреть сообщение

А что значит желтая связь и чем она опасна?
Кажется понял, там порядок следования блоков меняется, при выравнивании получается в соответствии с потоком данных.
http://dl.segnetics.com/WebHelp/SMLogix/base_needle.htm - прочитайте, полезно будет.


__________________
В сегнетиксе не работаю с самого начала 2019 года.
Gromov вне форума   Ответить с цитированием
Старый 27.10.2017, 15:57   #492
AlexSku
Senior Member
 
Регистрация: Oct 2017
Адрес: Москва
Сообщения: 183
Благодарил(а): 21 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: FBD чайникам

Цитата:
Сообщение от Arsie Посмотреть сообщение
Ответ есть в справке на этот блок.
Был вопрос, почему нельзя использовать spdelay для задержки включения-выключения. Но в справке только сказано, что надо использовать счётчики. При этом переход идёт не на нужный пример, а в конец статьи. Поднявшись повыше, видим пример, в котором утверждается, что с помощью CTU16 и TimeToTick можно сделать выдержку времени. Вопрос: как сделать аналог TON (задержка BOOL-сигнала при включении и сброс без задержки)? Куда подавать вход: Сброс, Счёт? Какой выход использовать: DO, QU?
AlexSku вне форума   Ответить с цитированием
Старый 27.10.2017, 16:43   #493
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 102
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: FBD чайникам

Цитата:
Сообщение от AlexSku Посмотреть сообщение
Вопрос: как сделать аналог TON (задержка BOOL-сигнала при включении и сброс без задержки)? Куда подавать вход: Сброс, Счёт? Какой выход использовать: DO, QU?
http://forum.segnetics.com/showthread.php?t=315


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 27.10.2017, 19:17   #494
AlexSku
Senior Member
 
Регистрация: Oct 2017
Адрес: Москва
Сообщения: 183
Благодарил(а): 21 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: FBD чайникам

Что означает жёлтая линия в самодельном макросе?

Вложение 4525

Последний раз редактировалось Arsie, 25.03.2022 в 16:20
AlexSku вне форума   Ответить с цитированием
Старый 27.10.2017, 19:33   #495
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 162
Благодарил(а): 240 раз(а)
Поблагодарили: 165 раз(а) в 157 сообщениях
По умолчанию Ответ: FBD чайникам

Цитата:
Сообщение от AlexSku Посмотреть сообщение
Что означает жёлтая линия в самодельном макросе?

Вложение 4525
следующую итерацию, на следующем тике.
типа х = х+1;


__________________
C уважением, LordN
LordN сейчас на форуме   Ответить с цитированием
Старый 29.10.2017, 21:22   #496
AlexSku
Senior Member
 
Регистрация: Oct 2017
Адрес: Москва
Сообщения: 183
Благодарил(а): 21 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: FBD чайникам

Как в FBD организовать переменные? Как задать начальное значение? (или там нули?)
Напр., в Codesis я пишу:
VAR
F1: BOOL:= TRUE;
F2: BOOL:= FALSE;
N: INT;
END_VAR

BEGIN
F2:= F1 OR F2;
Здесь же я вижу, что могу создать входные и выходные переменные. Но в моём примере F2 как слева, так и справа от присваивания. Как это делать?
Как сделать инициализацию на первом скане?
AlexSku вне форума   Ответить с цитированием
Старый 30.10.2017, 13:20   #497
СВМ
Senior Member
 
Регистрация: Jan 2012
Адрес: Саратов
Сообщения: 179
Благодарил(а): 1 раз(а)
Поблагодарили: 3 раз(а) в 3 сообщениях
По умолчанию Ответ: FBD чайникам

Цитата:
Сообщение от AlexSku Посмотреть сообщение
Как в FBD организовать переменные? Как задать начальное значение? (или там нули?)
Напр., в Codesis я пишу:
VAR
F1: BOOL:= TRUE;
F2: BOOL:= FALSE;
N: INT;
END_VAR

BEGIN
F2:= F1 OR F2;
Здесь же я вижу, что могу создать входные и выходные переменные. Но в моём примере F2 как слева, так и справа от присваивания. Как это делать?
Как сделать инициализацию на первом скане?
F2:= F1 OR F2;
Вложения
Тип файла: psl Untitled.psl (1.7 Кбайт, 49 просмотров)
СВМ вне форума   Ответить с цитированием
Старый 30.10.2017, 18:06   #498
AlexSku
Senior Member
 
Регистрация: Oct 2017
Адрес: Москва
Сообщения: 183
Благодарил(а): 21 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Несколько обращений к переменной.

Цитата:
Сообщение от СВМ Посмотреть сообщение
F2:= F1 OR F2;
А что делать, если имеется несколько цепочек для формирования переменных?
Вложение 4533
Условную установку и сброс я могу сделать RS-триггером. А как привязать третью цепочку?

Последний раз редактировалось Arsie, 25.03.2022 в 16:21
AlexSku вне форума   Ответить с цитированием
Старый 30.10.2017, 19:07   #499
СВМ
Senior Member
 
Регистрация: Jan 2012
Адрес: Саратов
Сообщения: 179
Благодарил(а): 1 раз(а)
Поблагодарили: 3 раз(а) в 3 сообщениях
По умолчанию Ответ: Несколько обращений к переменной.

Цитата:
Сообщение от AlexSku Посмотреть сообщение
А что делать, если имеется несколько цепочек для формирования переменных?
Вложение 4533
Условную установку и сброс я могу сделать RS-триггером. А как привязать третью цепочку?
Напишите текстом (си, бейсик), что Вам нужно: РКС(LD) я не знаю.
СВМ вне форума   Ответить с цитированием
Старый 30.10.2017, 19:35   #500
AlexSku
Senior Member
 
Регистрация: Oct 2017
Адрес: Москва
Сообщения: 183
Благодарил(а): 21 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Несколько обращений к переменной.

Цитата:
Сообщение от СВМ Посмотреть сообщение
Напишите текстом (си, бейсик), что Вам нужно: РКС(LD) я не знаю.
Примеры на классическом FBD (на Segnetics всё-таки CFC) и ST:

FBD.png

ST.png
AlexSku вне форума   Ответить с цитированием
Старый 30.10.2017, 20:02   #501
СВМ
Senior Member
 
Регистрация: Jan 2012
Адрес: Саратов
Сообщения: 179
Благодарил(а): 1 раз(а)
Поблагодарили: 3 раз(а) в 3 сообщениях
По умолчанию Ответ: Несколько обращений к переменной.

Цитата:
Сообщение от AlexSku Посмотреть сообщение
Примеры на классическом FBD (на Segnetics всё-таки CFC) и ST:

Вложение 4534

Вложение 4535
Ответ на ST:
Вложения
Тип файла: psl Untitled1.psl (4.1 Кбайт, 63 просмотров)
СВМ вне форума   Ответить с цитированием
Старый 30.10.2017, 20:13   #502
СВМ
Senior Member
 
Регистрация: Jan 2012
Адрес: Саратов
Сообщения: 179
Благодарил(а): 1 раз(а)
Поблагодарили: 3 раз(а) в 3 сообщениях
По умолчанию Ответ: Несколько обращений к переменной.

Цитата:
Сообщение от AlexSku Посмотреть сообщение
Примеры на классическом FBD (на Segnetics всё-таки CFC) и ST:

Вложение 4534

Вложение 4535
Или так:
Вложения
Тип файла: psl Untitled2.psl (3.1 Кбайт, 42 просмотров)
СВМ вне форума   Ответить с цитированием
Старый 30.10.2017, 20:50   #503
AlexSku
Senior Member
 
Регистрация: Oct 2017
Адрес: Москва
Сообщения: 183
Благодарил(а): 21 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Несколько обращений к переменной.

Цитата:
Сообщение от СВМ Посмотреть сообщение
Или так:
У вас две ошибки:
1) вы не учли условие С:
Z:= C
2) вы неправильно интерпретируете условную установку и условный сброс:
IF A THEN Z:= TRUE; означает IF A THEN Z:= TRUE ELSE Z не менять

IF B THEN Z:= FALSE; означает IF B THEN Z:= FALSE ELSE Z не менять.
Второй пункт реализуется RS-триггером.

Вопрос был: переменная Z зависит от А (установка), B (сброс), а также от C (как установка, так и сброс). Как это совместить?
(одно из решений у меня есть, просто мне хотелось увидеть наипростейшее). Загвоздка просто в том, что в Codesys можно объявлять переменные (VAR), а тут только входы и выходы.
AlexSku вне форума   Ответить с цитированием
Старый 30.10.2017, 21:05   #504
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 162
Благодарил(а): 240 раз(а)
Поблагодарили: 165 раз(а) в 157 сообщениях
По умолчанию Ответ: Несколько обращений к переменной.

Цитата:
Сообщение от AlexSku Посмотреть сообщение
У вас две ошибки:
1) вы не учли условие С:
Z:= C
2) вы неправильно интерпретируете условную установку и условный сброс:
IF A THEN Z:= TRUE; означает IF A THEN Z:= TRUE ELSE Z не менять

IF B THEN Z:= FALSE; означает IF B THEN Z:= FALSE ELSE Z не менять.
Второй пункт реализуется RS-триггером.

Вопрос был: переменная Z зависит от А (установка), B (сброс), а также от C (как установка, так и сброс). Как это совместить?
(одно из решений у меня есть, просто мне хотелось увидеть наипростейшее). Загвоздка просто в том, что в Codesys можно объявлять переменные (VAR), а тут только входы и выходы.
вход - это переменная, которой можно присвоить некое значение. выход, это переменная которую можно переложить в новое место. и над которой можно произвести какие-то действия.

т.е. какая разница? вернее не так, разницы - никакой. вся разница находится у вас в голове.


__________________
C уважением, LordN
LordN сейчас на форуме   Ответить с цитированием
Старый 30.10.2017, 21:05   #505
AlexSku
Senior Member
 
Регистрация: Oct 2017
Адрес: Москва
Сообщения: 183
Благодарил(а): 21 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: FBD чайникам

Кстати, правильно я понял, что без контроллера нельзя проверить правильность схемы? (не увидел компиляции)

Тогда вопрос: можно ли несколько раз присваивать значение выходной переменной?

Z.png
AlexSku вне форума   Ответить с цитированием
Старый 30.10.2017, 21:55   #506
boxmen77
Senior Member
 
Аватара для boxmen77
 
Регистрация: Apr 2017
Адрес: MSK
Сообщения: 125
Благодарил(а): 0 раз(а)
Поблагодарили: 5 раз(а) в 5 сообщениях
По умолчанию Ответ: FBD чайникам

В данном случае это две разные переменные с одним названием.
boxmen77 вне форума   Ответить с цитированием
Старый 30.10.2017, 21:55   #507
New
Senior Member
 
Регистрация: May 2009
Сообщения: 1 034
Благодарил(а): 9 раз(а)
Поблагодарили: 22 раз(а) в 22 сообщениях
По умолчанию Ответ: FBD чайникам

Может вы всё-таки попробуете словами описать что вам таки нужно в результате получить?


__________________
RTFM
New вне форума   Ответить с цитированием
Старый 30.10.2017, 22:11   #508
boxmen77
Senior Member
 
Аватара для boxmen77
 
Регистрация: Apr 2017
Адрес: MSK
Сообщения: 125
Благодарил(а): 0 раз(а)
Поблагодарили: 5 раз(а) в 5 сообщениях
По умолчанию Ответ: FBD чайникам

Вечер добрый .Я хотел бы поднять тему по поводу людей переходящих на fbd. Немного истории. Начал заниматься изучением языков программирования с появления в нашей Стране аналогов ZX . Заодно и собирал их в те времена на продажу. Так вот, благодаря этому fbd понимаю как Русский язык( справочники были по всем наборам микросхем).Так вот, может сделать отдельную ветку и разжевать подробно все тем, кто переходит с кодесиса (сам с ...ом пробовал) и т.д.
boxmen77 вне форума   Ответить с цитированием
Старый 30.10.2017, 22:21   #509
младшой
Senior Member
 
Регистрация: May 2010
Адрес: Москва
Сообщения: 863
Благодарил(а): 4 раз(а)
Поблагодарили: 86 раз(а) в 67 сообщениях
По умолчанию Ответ: Несколько обращений к переменной.

Цитата:
Сообщение от AlexSku Посмотреть сообщение
Вопрос был: переменная Z зависит от А (установка), B (сброс), а также от C (как установка, так и сброс). Как это совместить?
У вас в конце концов переменная С однозначно определяет состояние Z.
Следовательно, А и В вообще не имеют значения и код с ними бесполезен.
младшой сейчас на форуме   Ответить с цитированием
Старый 30.10.2017, 23:00   #510
New
Senior Member
 
Регистрация: May 2009
Сообщения: 1 034
Благодарил(а): 9 раз(а)
Поблагодарили: 22 раз(а) в 22 сообщениях
По умолчанию Ответ: Несколько обращений к переменной.

Цитата:
Сообщение от младшой Посмотреть сообщение
У вас в конце концов переменная С однозначно определяет состояние Z.
Следовательно, А и В вообще не имеют значения и код с ними бесполезен.
Угу. Я потому выше и спросил, что должно то получиться.


__________________
RTFM
New вне форума   Ответить с цитированием
Ответ


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

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



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


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