с него родимого
с него родимого
Ну вот и доде6лал под себя выкладываю то что получилось может кто то еще что то улучшит
У меня есть замечания и улучшения.
1. Нужно добавить еще одно условие сброса триггера RS1
1.png
Первоначально у меня было только это условие. И все работает нормально, но затем добавил два "параноидальных" условия "<=" и ">=" для случая если тележка продолжит движение при не исправном датчике заданного адреса.
При добавлении этих двух условий про условие "=" забыл.
2. У элемента PACK для адреса в моем проекте http://www.owen.ru/forum/showthread....l=1#post119997 использовался вход EN с инверсией. Назначение входа EN для элемента PACK_DW понятно из картинки
2.png
Если оставить EN без инверсии, то с дополнительным условием по п.1 программа работать не будет.
Еще не плохо было бы контролировать количество "1" в переменной POLOGENIE. Если оно будет больше одного, то имеет место неисправность какого-то датчика.
Последний раз редактировалось petera; 07.10.2013 в 15:07.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Готовых библиотечных функций для этогоне припомню что то.Еще не плохо было бы контролировать количество "1" в переменной POLOGENIE. Если оно будет больше одного, то есть неисправность какого-то датчика.
можно на ST написать нечто громоздкое но работать будет.
Например
IN: DWORD;
ALARM: BOOL;
IF (IN.0=FALSE AND IN.1=TRUE AND IN.2=TRUE) THEN
ALARM:=TRUE;
ELSIF
(IN.0=TRUE AND IN.1=FALSE AND IN.2=TRUE) THEN
ALARM:=TRUE;
ELSIF
(IN.0=TRUE AND IN.1=TRUE AND IN.2=FALSE) THEN
ALARM:=TRUE;
END_IF
Только надо учесть что у нас 32 входа нужно будет расписать 32 варианта с описанием состояний 32х входов
Последний раз редактировалось alexval2006; 07.10.2013 в 16:03.
Проверка наличия всех положенных датчиков по пути (проскок) ?
А проверка "едем-едем - ничего не меняется" ?
Или кладем на такую мелочь ?
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Код от alexva2006 посмотреть немогу. Есть таймер - ок. В Вашем - невидел.
Проверка проскоков есть там ? (Типа поехали из 2 в 8. Отвалился 4й)
Путем перебора всех не правильных комбинаций идти нельзя. Слишком большая комбинация возможных состояний.
Ровно 32 перебора будет если с помощью CASE сравнить значение только с допустимыми комбинациями.
Код:VAR POLOGENIE_OUT: DWORD; ALARM: BOOL; END_VAR Тело программы CASE POLOGENIE_OUT OF 2#00000000000000000000000000000000: ALARM:=FALSE; 2#10000000000000000000000000000000: ALARM:=FALSE; 2#01000000000000000000000000000000: ALARM:=FALSE; 2#00100000000000000000000000000000: ALARM:=FALSE; 2#00010000000000000000000000000000: ALARM:=FALSE; ............................................................................. 2#00000000000000000000000000000001: ALARM:=FALSE; ELSE ALARM:=TRUE; END_CASE
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg