Так, а что надо?
Вид для печати
вы не хотите рассказать, что собственно и как вы делали в своём варианте?
почему поставили тот или иной блок? для чего?
почему вход rst на каком-то блоке switch1_129 - висит в воздухе и на него нет никакого воздействия, а?
почему порядок обработки блоков стоит - через задницу
что это за блок кстати и откуда он взялся, из какой бибилотеки?
было бы неплохо увидеть ваши рассуждения
простой алгоритм, ничего сверхъестественного нет, просто надо немного подумать
а пока всё это выглядит как "сделайте за меня"
Возможно, вы такой вариант имели ввиду
Вложение 66465
Только, обязательно соблюдайте порядок блоков как на картинке
Как я понял, включать надо по кнопке, а выключать по таймеру, с задержкой, тогда так Вложение 66466
Есть включатель, а есть датчик. Они включают одно и тоже, только датчик работает по таймеру(прошли, горит 5 секунд после того, как пропало движение), а включатель пока повторно не нажать.
Так бы сразу и сказал..
Вложение 66489
Здравствуйте, подскажите пожалуйста, перечитал все в поиске, все видео пересмотрел не могу найти правильный подход.
Такая ситуация: СП307 (sleve), ПЛК 110-60 (мастер) (язык СFC) ; на СП создал иконки дата и время, в настройках проекта - экспорт даты и время прописал регистр. Как экспортировать год месяц день и время в ПЛК? что бы в итоге можно конвертировать в DATA, DT, time ? или хотя бы в значения которые можно прочитать, т.к. создаю модули стринг, реал , регистр,а они не целочисленные.... не могу вставить эти значения в свой таймер для работы по времени выходных сигналов...
Еще вопросы: как создать свой функциональный блок и сохранить и вставлять в другие проекты? можно ли его сделать на языке CFC?, как созданный мною макрос вставить в другой проект?
откройте документацию на CoDeSys 2.3 "Руководство пользователя по программированию ПЛК в CoDeSys 2.3"Цитата:
Еще вопросы: как создать свой функциональный блок и сохранить и вставлять в другие проекты? можно ли его сделать на языке CFC?, как созданный мною макрос вставить в другой проект?
и начните читать. На первых же страницах вы увидите в пункте 2 документации следующий текст
ВАШ функциональный блок - это такой же программный компонент.Цитата:
Проект
Проект включает следующие объекты: POU, типы данных, визуализации, ресурсы, библиотеки.
Каждый проект сохраняется в отдельном файле.
POU (Program Organization Unit)
К программным компонентам (POU) относятся функциональные блоки, функции и программы. Отдельные POU могут включать действия (подпрограммы).
как его делать и что с ним делать - откройте документацию и в разделе 3, где описан пример "Блок управления светофором" - выполните этот пример и все вопросы "как работать в Кодесис?" - пропадут.
а что ещё вы сделали помимо вот этогоЦитата:
Как экспортировать год месяц день и время в ПЛК? что бы в итоге можно конвертировать в DATA, DT, time ? или хотя бы в значения которые можно прочитать, т.к. создаю модули стринг, реал , регистр,а они не целочисленные.... не могу вставить эти значения в свой таймер для работы по времени выходных сигналов...
?Цитата:
на СП создал иконки дата и время, в настройках проекта - экспорт даты и время прописал регистр.
судя по вот этому -какие модули? какой регистр? где создаёте? о чём это вообще?Цитата:
создаю модули стринг, реал , регистр
вы вообще не читали документацию по работе с Кодесис и с ПЛК, даже базовые вещи
Например в панели вы поставили экспорт времени в 501 регистр, у вас будут 7 регистров с 501 по 507 (год, месяц, день, часы, мин, сек, день недели).
Время в панели в формате HEX, для вывода в панели ставите формат HEX,
а ещё точнее в формате BCD, например секунды могут быть не 59, а 89, при отображении в десятичной системе.
ПЛК мастер читает эти 7 регистров в виде WORD (Register Input), приняв их в ПЛК, конвертируете с помощью биб-ки Util.lib,
блок BCD_TO_INT, в нормальные числа и делайте что угодно.
В Codesys, по кнопке F1, открываете справку и читаете про Типы Данных, про Функциональные блоки ФБ(типа макросы) и про импорт, экспорт блоков.
Напрмер таймеры это тоже функц. блоки, только библиотечные. Вы можете создать свой ФБ с нужными входами, выходами и так же как таймер поставить на поле и использовать.
Всем большое спасибо, все получилось.
Единственное, еще не разобрался по написанию функциональных блоков, я так понял на языке CFC примера нет в мануале? как создать функциональный блок, а то я пока разбираюсь в CFC языке в другие не лезу...
ээээээ даже не знаю как сказать
вы понимаете, то что прочитали? что вам вчера написали?
или вы принципиально не читаете ничего, а занимаетесь попрошайничеством на форумах? чтобы за вас всё сделали, разжевали и в рот положили?
Вложение 66547
В Левой колонке где PLC_PRG, нажмите правую кнопку мыши Добавить объект и выберете функц. блок, дайте ему имя и выберете язык CFC, потом ОК.
или Воспользуйтесь командой Проект/ Объект / Добавить и выберете функц. блок
Для вызова блока, надо на поле поставить элемент и дать ему имя вашего блока, а так же сверху дать ему имя с номером, например 1,Вложение 66549
это будет первый экземпляр вашего блока.
Знатоки подскажите
Использую овеновскую библиотеку OwenCommunication для обмена с девайсом по RS485
ОТслеживая результаты обмена обратил внимание что периодически возникают ошибки CRC (RESPONSE_CRC_FAIL 60 Ошибка CRC ) . Других ошибок не возникает практически никогда.
Я так понимаю что целостность данных но каких? Вроде у меня все данные корректные приходят.
Но стандарт MODBUS сам должен обрабатывать ошибку CRC (повторной передачей)
Что это за ошибка и как ее правильно интерпретировать?
Блок вызывается примерно с такими входными параметрами:
fbSerialRequest
(
xExecute := TRUE,
hCom := hCom,
tTimeout := T#100MS,
usiRetry := 3,
xIsAsciiMode:= FALSE,
usiSlaveId := fbAxisDrives[iAxisIndex].usiSlaveId,
eFuncCode := fbAxisDrives[iAxisIndex].stStack.eFuncCode,
uiDataAddr:= fbAxisDrives[iAxisIndex].stStack.uiDataAddr,
uiDataCount := fbAxisDrives[iAxisIndex].stStack.uiDataCount,
pData := fbAxisDrives[iAxisIndex].stStack.pData,
szSize := fbAxisDrives[iAxisIndex].stStack.szSize
);
https://owen.ru/forum/showthread.php...l=1#post403667 это не помогает? Свежее вроде
Вам тож же спасибо, я читал , но там нет примера как показал kondor3000, ему ОГРОМНОЕ СПАСИБО, то что показали вы я это делал даже без инструкции, но у меня почемуто не получились входы выходы в функциональном блоке ( который создал я)!
Зачем тратить свое время в данной ленте и гнобить новичков? (можете не отвечать)! )
Да, у меня стоит время цикла 5 мс. И при таком времени цикла у меня период на чтение/блока регистров 35-40 мс. Эта ошибка в основном возникает только при чтении READ ONLY регистров (что в общем-то не очень критично)
Я попробовал поставить 10 мс. Сразу время одного чтения/записи возросло до 70, и ошибки не исчезли. При 20 мс. вообще начинает глючить прога, слишком медленно приходят данные.
Сорян
блин
Теперь создайте еще три объекта. Воспользуйтесь командой ‘Проект’ ‘Объект - Добавить’ ("Project" "Object Add") в системном или в контекстном (нажмите правую кнопку мыши в Организаторе
объектов) меню. Создайте: программу на языке Sequential Function Chart (SFC) с именем
SEQUENCE, функциональный блок на языке Function Block Diagram (FBD) с именем
TRAFFICSIGNAL и еще один аналогичный блок - WAIT, который мы будем описывать на языке
Список Инструкции (IL).
в документации приведено ДВА (ДВА!!!!) примера создания СВОИХ блоков, на разных языках
даны картинки
Вложение 66567
и чем вот эта картинка принципиально отличается от языка CFC?
Вложение 66568
вам подсказывают - научиться думать и действовать самостоятельно, а не пытаться всё время списать.
Когда-то доброго самаритянина Кондора не окажется рядом, и что вы будете делать?
удачи
Привет всем!
Подскажите, как на ST переключать визуализацию по переменной CurrentVisu?
Создано два окна, но CurrentVisu не реагирует, только отображает, что в неё записано.
В таргет ПЛК160-M v2
Настройка целевой платформы > визуализация
опция "Активировать системную перем-ю "CurrentVisu" не активна.
И ещё CoDeSysHMI.exe не запускает
"C:\Program Files (x86)\3S Software\CoDeSys V2.3\CoDeSysHMI\CoDeSysHMI.exe" /target M1.pro /visu overview
выдаёт:
The project does not contain a visualization PLC_VISU
( Проект не содержит визуализации PLC_VISU ).
Создаете объект "Кнопка" -> Ввод -> Галочку на Переход в виз. -> В поле ввода через F2 указываете визуализацию для перехода.
Вложение 66819
Добрый день товарищи. Нужно автоматизировать работу 8 насосов, разделенных на 4 группы(2 насоса в группе соответственно). Перед каждым насосом стоят датчики перепада давления. Нужно настроить ротацию насосов(раз в сутки) и, сделать так, чтобы после ротации насос включился, создал перепад, датчик перепада замкнулся ну и соответственно насос перешел под его ''защиту''
Конкретный вопрос. Как автоматизировать работу так, чтобы насос сначала включился сам и создал перепад, а потом при замыкании датчика перепада перешел под его контроль
Вы это имели ввиду?
Вложение 66842