PDA

Просмотр полной версии : ВОПРОС-ОТВЕТ (отвечаем на простые вопросы от новичков)



Страницы : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [16] 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42

capzap
22.03.2015, 19:20
Заметил, но описания не могу найти. Где команды для неё где подсмотреть можно?:rolleyes:
Все, понял что нужен руководство для чайников на Linux :D.
Пойду изучать, спасибо!

Мдааа.....Попробовал sysexec, мегавещь :)
Отправка в файл в одну строку, реально круто.

Правда я так понял можно только что-то отправлять но не получать?
Нельзя например узнать существует ли файл, чтобы дописать в него или же как то можно?
если у Вас не 304 плк, то используется бибка второй версии, там можно и вычитывать данные

Валенок
22.03.2015, 21:43
Вопрос к специалистам: Может ли данная конструкция остановить/замедлить выполнение программы, если в буффер поступают данные?
Это просто очистка буфера. В теории левых данных поступать не должно. И в 99.9..% так оно и есть.
Но в принципе это потенциальная дыра - подлый враг может тупо дернуть за хвост злую собаку мастера. При этом сам будет за забором. Да и оффлайн отладка с этим затруднительна.
Имхо, автомат надежней.

приборист
22.03.2015, 21:57
Хм..Странно как то. Сначала все заработало с Execute, попробовал добавить цикл и все.
Тишина.

Добавлял файлы так:
sysexecute('echo "Привет" >> mnt/ufs/media/mmcblk0p1/Portal1/Data');

Пробую создать файл так:
sysexecute('cat > mnt/ufs/media/mmcblk0p1/Portal1/Data.csv');

Файла нет.
Чудеса какие то.

ЗЫ
Сначала делал без расширения файла, теперь пробую и так и так.

приборист
22.03.2015, 23:09
В общем попробовал все 3 варианта:
CAA_File
SysExecute
SysLibFile

Все пробовались на запись последовательно массива строк через цикл For.
CAA_File - сразу присылал ошибку.
SysExecute - отправлял одну первую строку (вторая приходила пустая)
SysLibFile - сразу заработало, добавил в файл все строки.

capzap
23.03.2015, 09:00
команда cat просматривает содержимое файла,а не создает,для этого есть touch. но когда Вы что то посылаете через > файл и так создастся, и не забывайте, есть отличие просто > и >> ,сами разберетесь что доя чего

Алексей Александрович
23.03.2015, 11:10
по Вашему Serge_UA является модератором?

Да просто хотел дать ссылку и завяз. Serge_UA не к нему. Но тему №2 можно было бы замутить

capzap
23.03.2015, 12:08
Да просто хотел дать ссылку и завяз. Serge_UA не к нему. Но тему №2 можно было бы замутить

я про то, что ни кто не мешает Вам тему создать

приборист
23.03.2015, 12:24
команда cat просматривает содержимое файла,а не создает,для этого есть touch. но когда Вы что то посылаете через > файл и так создастся, и не забывайте, есть отличие просто > и >> ,сами разберетесь что доя чего

Да, я уже почитал про некоторые команды. Инструмент отличный, спасибо за подсказку!
Для данной задачи не подошел, но думаю в других вариантах проще использовать Sysexecute, чем CAA_File.

приборист
24.03.2015, 17:13
Продолжаем серию вопросов про файлы :D

Как можно объединить 2 файла?

Задача такая - пишем на SD, при вынимании SD карты пишем во внутреннюю память, если SD карта опять вставлена - файл из памяти записывается в файл на SD и продолжается запись на SD.

Если читать файл в буффер и потом писать в файл на SD - проблем нет, но если файл большой - получаем проблему.
Пробовал читать размер файла, и передавать Handle как указатель на начало файла - файл дописывается каким то мусором.

Есть простые решения?

petera
24.03.2015, 18:16
Подскажите как исправить кодировку в Codesys 2.3? Копирую в буфер фрагмент программы (ST) и вывожу в текстовый файл. В место русских букв вижу кракозябры.


http://www.owen.ru/forum/showthread.php?t=14121&p=165424&viewfull=1#post165424


Насчёт удобней пока не нашел, а вот почему не помогло, странно. А если выбрать вариант "Сложно" и вручную указать кодировки с ср1252 в ср1251?
http://www.owen.ru/forum/attachment.php?attachmentid=16915&d=1425224217 Хм, а я-то думаю, где я раньше уже это слышал?
И нашел свой собственный ответ http://www.owen.ru/forum/showthread.php?t=10555&p=97663&viewfull=1#post97663

ключевой момент здесь надо перед копированием переключить клавиатуру на "RU" (чтобы системный буфер 'знал', что копируется кириллица, а не западно-европейский текст) - и только потом делать Ctrl/C

capzap
24.03.2015, 20:01
Продолжаем серию вопросов про файлы :D

Как можно объединить 2 файла?

Задача такая - пишем на SD, при вынимании SD карты пишем во внутреннюю память, если SD карта опять вставлена - файл из памяти записывается в файл на SD и продолжается запись на SD.

Если читать файл в буффер и потом писать в файл на SD - проблем нет, но если файл большой - получаем проблему.
Пробовал читать размер файла, и передавать Handle как указатель на начало файла - файл дописывается каким то мусором.

Есть простые решения?

опять сказать, что команды линукс и sysexec рулят ?

приборист
24.03.2015, 20:23
опять сказать, что команды линукс и sysexec рулят ?
:D
Для 3.5 понял, а для 2.3?
так сказать задел для newПлк110:confused:

Smith2007
28.03.2015, 09:46
ПЛК110-30M (old)
В проекте в ModBus master получаю переменных общей длиной 40 байт.
В Слейве передаются переменные еще на 64 байта.
ModbusMastet по интерфейсу RS485 (115200)
ModbusSlave - Ethernet (TCP/IP) (10M)

Какие имеются ограничения на длину данных в master и slave? До какого размера работоспособность будет не нарушена?
Если на Slave (Eth) выводить переменных на 512 байт?

Валенок
28.03.2015, 16:36
Какие имеются ограничения на длину данных в master и slave?
wiki про модбас : 250R/246W

Smith2007
28.03.2015, 16:53
т.е. если данных в канале необходимо больше 246 то нужно заводить второй слейв?

petera
28.03.2015, 18:28
т.е. если данных в канале необходимо больше 246 то нужно заводить второй слейв?

Указано ограничение на количество байт в одной телеграмме для мастера. В слейве могут быть тысячи регистров.

Smith2007
28.03.2015, 19:58
Как это влияет на скорость передачи данных? Правильно ли я понял, что если регистров в слейве плк 500 ( байт 1000) , то мастер отправит 2 телеграммы по 250 регистров. Т.е. время цикла обновления данных на ПЛК слейве увеличится ровно в два раза.
И мне не стоит беспокоиться сколько регистров я пересылаю. ПЛК все получит, но за больший интервал времени.

petera
28.03.2015, 21:25
ПЛК110-30M (old)
В проекте в ModBus master получаю переменных общей длиной 40 байт.
В Слейве передаются переменные еще на 64 байта.
ModbusMastet по интерфейсу RS485 (115200)
ModbusSlave - Ethernet (TCP/IP) (10M)

Какие имеются ограничения на длину данных в master и slave? До какого размера работоспособность будет не нарушена?
Если на Slave (Eth) выводить переменных на 512 байт?


Как это влияет на скорость передачи данных? Правильно ли я понял, что если регистров в слейве плк 500 ( байт 1000) , то мастер отправит 2 телеграммы по 250 регистров. Т.е. время цикла обновления данных на ПЛК слейве увеличится ровно в два раза.
И мне не стоит беспокоиться сколько регистров я пересылаю. ПЛК все получит, но за больший интервал времени.
Какие-то абстрактные вопросы.
Сколько всего устройств и каких используется? Кто тот мастер, который читает/пишет регистры из/в слейв ПЛК сразу по 500 регистров? К стати, ограничение в одной телеграмме не на число регистров, а на число байт, т.е. 500 регистров -это 4 раза по 250 байт. И с чего Вы взяли, что мастеру неприменно нужно одномоментно 500 регистров прочитать/записать?

Smith2007
28.03.2015, 22:19
На ПЛК создан ModbusSlave.
В слейве определены 24 переменные REAL. (4*24=96) byte
4 переменные DWORD - еще (4*4=16) байт
4 WORD - (4*2=8) байт

Кроме того предполагаю потребуется еще некоторое количество переменных. Вот и спросил про ограничения.

500 регистров -это 4 раза по 250 байт

Да, это я ошибся когда сообщение писал. Сначала написал про 250 регистров (500 байт) и 2 телеграммы, а затем написал про 500 регистров не исправив кол-во телеграмм.
Но если правильно понял, то беспокоится о количестве переменных не особенно стоит. Больше 500 байт я в любом случае не наберу.
_____________________________________________


Еще столкнулся с проблемой
В слейве определены 4 последовательных 8-ми битных регистра.
Присвоены имена ACode0, ACode1, ACode2, ACode3
Кроме того имеется массив с 32 строками из переменной типа структура. В структуре есть одно поле BOOL.
В соответствии с этим полем необходимо установить значение бит в битовых переменных слейва Acode0, ACode1, ACode2, ACode3

Массив обрабатывается в цикле (одна строка за один цикл вызова программы)
Чтобы можно было обратиться к 4-м указанным переменным, я определил указатель на первую переменную ACode0 и указал тип DWORD



var pt_ACode: POINTER TO DWORD;
var i: BYTE; (i меняется от 0 до 32 в программе)


CASE i OF

0:

pt_ACode := ADR(ACode0);

1..32:
Далее в цикле устанавливаю биты
IF (некоторое условие1) THEN pt_ACode^:= PUTBIT(pt_ACode^, i-1, TRUE); END_IF;
IF (некоторое условие2) THEN pt_ACode^:= PUTBIT(pt_ACode^, i-1, FALSE); END_IF;

i:= i+1;
ELSE
i := 0;

END_CASE;


При компиляции дает сообщение об ошибке, что не определена переменная PUTBIT.
Библиотека UTIL.LIB подключена.
Как заставить программу увидеть эту функцию?

Smith2007
29.03.2015, 03:26
Похоже Codesys заглючил.
Очистил проект. Удалил библиотеку, затем добавил снова. Перекомпилировал - без ошибок.

VanoKing
30.03.2015, 10:07
1. пытаюсь подключиться к ПЛК63 из Codesys 2.3. как изменить настройки соединения?. из меню онлайн-параметры связи делаю соединение типа Local, но его нельзя редактировать

2.как правильно реализовать в Codesys 2.3 подачу 10в на аналоговый выход контроллера, в конфигурации ПЛК тип REAL. что нужно присвоить выходу %QD0.1.1?

3. серия ПЛК63-РУУУУУ. Как управлять первым реле если в конфигурации ПЛК стоит тип REAL %QD0.1.0?

energvk
30.03.2015, 10:33
1. В параметрах связи создаете новое соединение Serial (RS232), указываете параметры (порт, скорость (115200) и т.д.)
2. Чтобы подать на аналоговый выход 10 В - отправляете на него 1, 5 В - соответственно 0,5.
3. Чтобы управлять реле - подаете на него TRUE через блок BOOL_TO_REAL.

VanoKing
30.03.2015, 11:38
1.В параметрах связи создал соединение serial (RS232) но изменять параметры не дает
все вопрос снят. изменение параметров меняется по двойному клику

Sing1
30.03.2015, 13:45
Товарищи, прошу просветить по вопросу организации ModbusTCP. Пользуясь биб-ками oscat собрал сервер,залил в PLCWinNT с эмулятора панели пишу-читаю, всё работает. Беру тот же сервер меняю платформу и заливаю на реальный ПЛК 110,настраиваю эмулятор панели,обмена нет. В чем причина? Возможно ли пользоваться функциями oscat для овен? И если нет,то в чем различия?

Yegor
30.03.2015, 14:42
И если нет,то в чем различия?Сообщение №8 в теме SysLibSockets (http://www.owen.ru/forum/showthread.php?t=14412):
Я же не говорю что в плк100 сокеты не работают. Они работают. И даже связываются с TCP сервером и получают и отправляют ему данные(могу видео приложить). Просто есть одна проблема: SysSocketConnect даже при удачной связи с ТСР сервером все равно возвращает falseСледовательно, все библиотеки, которые писались под нормальную реализацию этой функции, не работают с ПЛК фирмы Овен. Хочется плакать и смеяться. Возможный костыль: выдрать нужное из оската и подредактировать под ПЛК Овен.

capzap
30.03.2015, 15:05
Товарищи, прошу просветить по вопросу организации ModbusTCP. Пользуясь биб-ками oscat собрал сервер,залил в PLCWinNT с эмулятора панели пишу-читаю, всё работает. Беру тот же сервер меняю платформу и заливаю на реальный ПЛК 110,настраиваю эмулятор панели,обмена нет. В чем причина? Возможно ли пользоваться функциями oscat для овен? И если нет,то в чем различия?

оскат слишком наворочен,а различие там только вместо буля,надо проверку делать на меньше нуля

Sing1
30.03.2015, 17:25
Получается различия в библиотеках SysLibSockets для PLCWinNT и Овен? И различия в том, что некоторые функции не булевы?

Yegor
30.03.2015, 18:20
Функции SysLibSockets реализуются в прошивке контроллеров. Файл библиотеки — лишь привязка к ним (можете сами открыть SysLibSockets в кодесисе и убедиться, что тела у функций пустые). То есть проблема тут с кодом, который является частью прошивки.

capzap
30.03.2015, 23:26
Получается различия в библиотеках SysLibSockets для PLCWinNT и Овен? И различия в том, что некоторые функции не булевы?

да, так и есть, вот в теме ссылка на видео с реального плк овен, всё работает и клиентская и серверная часть www.owen.ru/forum/showthread.php?t=20890&p=166365&viewfull=1#post166365

Sing1
31.03.2015, 01:33
да, так и есть, вот в теме ссылка на видео с реального плк овен, всё работает и клиентская и серверная часть www.owen.ru/forum/showthread.php?t=20890&p=166365&viewfull=1#post166365

Да, действительно работает, но хочется того же добиться на сборке от oscat.


Функции SysLibSockets реализуются в прошивке контроллеров. Файл библиотеки — лишь привязка к ним (можете сами открыть SysLibSockets в кодесисе и убедиться, что тела у функций пустые). То есть проблема тут с кодом, который является частью прошивки.

Действительно пустые,из любопытства посмотрел биб-ки PLCWinNT-тоже пустые( Из этого представляется только одно, найти различия в реализации SisLibSockets, и, как Вы уже писали, в соответствии подредактировать функции oscat. Если у кого есть пример,был бы признателен и конечно благодарю за помощь!

capzap
31.03.2015, 06:39
Да, действительно работает, но хочется того же добиться на сборке от oscat.

не используйте эту сборку, она предназначена для множества контроллеров с разными архитектурами, скорее всего Вас там больше интересует модбас вот его и возьмите а поднять сокет можете взять пример из вышеуказанной темы

VanoKing
31.03.2015, 11:01
как на CFC сделать запоминание сигнала, т.е. простую ячейку памяти так понимаю? изменяю аналоговый выход и требуется на определенном значении фиксировать это значение

petera
31.03.2015, 11:11
как на CFC сделать запоминание сигнала, т.е. простую ячейку памяти так понимаю? изменяю аналоговый выход и требуется на определенном значении фиксировать это значение
С помощью MOVE с дополнительным входом EN

shagin
01.04.2015, 09:25
Добрый день. моя конфигурация: Ип320 (Мастер)+ ПЛК100(Slave) по RS-232 (кабель распаен как в руководстве к панели). У меня вот такой вопрос: записываю данные (уставки) с панели в контроллер - они отображаются только в конфигурации, а самой программе нет значений; данные (текущие значения ) - в конфигурации ноль, не передаются на панель, там тоже ноль! скорости менял. Может кабель?

жекон
01.04.2015, 09:34
А переменные привязаны к входам выходам конфигурации, Вы хоть бы скрин с конфигуратором выложили, а еще лучше проект

Василий Кашуба
01.04.2015, 09:36
Добрый день. моя конфигурация: Ип320 (Мастер)+ ПЛК100(Slave) по RS-232 (кабель распаен как в руководстве к панели). У меня вот такой вопрос: записываю данные (уставки) с панели в контроллер - они отображаются только в конфигурации, а самой программе нет значений; данные (текущие значения ) - в конфигурации ноль, не передаются на панель, там тоже ноль! скорости менял. Может кабель?
А переменные из конфигурации связаны с программой?

shagin
01.04.2015, 10:17
:D
А переменные из конфигурации связаны с программой?

кажется я понял в чем проблема. получается дважды описал переменные: в конфигурации и в самой программе (в VAR RETAIN). прилагаю проект. он сырой и первый мой в codesys - строго не судить.

VanoKing
01.04.2015, 10:35
как правильно добавить модуль в конфигурацию ПЛК63? модуль МУ110-6У, соединены по RS-485

petera
01.04.2015, 10:42
как правильно добавить модуль в конфигурацию ПЛК63? модуль МУ110-6У, соединены по RS-485
Ни как, только с использованием библиотеки modbus.lib

Василий Кашуба
01.04.2015, 11:01
:D

кажется я понял в чем проблема. получается дважды описал переменные: в конфигурации и в самой программе (в VAR RETAIN). прилагаю проект. он сырой и первый мой в codesys - строго не судить.
Не совсем понял, для чего нужно по команде vkl_klap на 1 мс дёргать клапаны.

shagin
01.04.2015, 11:18
по тому что нет значения уставки работы клапана 1 и 2, которые устанавливаются с панели. поэтому дергает. поставте в секундах и увидете как работает (может подскажете как оптимизировать). лучше ответьте на мой вопрос, который был ранее :)

Василий Кашуба
01.04.2015, 11:30
по тому что нет значения уставки работы клапана 1 и 2, которые устанавливаются с панели. поэтому дергает. поставте в секундах и увидете как работает (может подскажете как оптимизировать). лучше ответьте на мой вопрос, который был ранее :)
С предыдущим вопросом я вам не помогу, так как вы не дали программу для панели, да собственно сейчас у меня и панели нет.:)

shagin
01.04.2015, 11:46
ладно. сегодня попробую свою идею. завтра отпишусь о результате и дам программу на ИП320. у меня и по основной программе есть вопросы, но их я потом задам по мере выполнения проекта. что то для первого раза слишком серьезный проект взял ))))))

Руслан ANP
01.04.2015, 14:04
1. Есть ли возможность в ПЛК запрограммировать программу "ТРМ", например задать включение и отключение питание поступающее на ТЭНы, при температуре скажем так от 190 С - включение, а при 210 С - отключение, 2. как к ПЛК подключить датчик например термопару? 3. Какие библиотеки можно использовать по данной задаче, 4. и какая маркировка ПЛК должна быть?

жекон
01.04.2015, 14:07
17454Они у Вас вообще не привязаны

Виктор10220
01.04.2015, 14:30
Добрый день. Имеется модуль МВ110-32ДН. Свежекупленый. На диске с ним нет в библиотеке такого модуля. На сайте тоже не нашел. Где можно взять данную библиотеку.

Yegor
01.04.2015, 14:39
Библиотеку?! Вообще о таком не слышал. Номера регистров Modbus в руководстве ведь указаны — никаких специальных библиотек именно для 32ДН не требуется.

жекон
01.04.2015, 15:27
1. Есть ли возможность в ПЛК запрограммировать программу "ТРМ", например задать включение и отключение питание поступающее на ТЭНы, при температуре скажем так от 190 С - включение, а при 210 С - отключение, 2. как к ПЛК подключить датчик например термопару? 3. Какие библиотеки можно использовать по данной задаче, 4. и какая маркировка ПЛК должна быть?
1.Легко
2.Берете ПЛК с аналоговыми входами
3.Можно стандартными обойтись, или взять OSCAT
4.Тут выбирать надо, задачу поподробнее

shagin
02.04.2015, 09:10
все исправил. работает. получилось два раза назначил переменные. и в конфигураци и и в самой программе. прилагаю программу панели (кому интересно).

black-hol
02.04.2015, 18:21
Сколько в одном ПЛК можно сделать ПИД регуляторов для одновременной работы?

Yegor
02.04.2015, 19:32
А сколько вам надо?

melky
02.04.2015, 19:48
black-hol в одном ПЛК по количеству аналоговых входов.

capzap
02.04.2015, 20:24
black-hol в одном ПЛК по количеству аналоговых входов.

я бы понял еще, еслиб Вы написалы выходов, а на каждый вход может быть 2-хкаскадное регулирование, можно регулировать по разнице двух входов и т.д.

Валенок
02.04.2015, 20:34
Сколько в одном ПЛК можно сделать ПИД регуляторов для одновременной работы?
Для одновременной - строго 1. ))

Виктор10220
03.04.2015, 07:23
Я второй день с овеном работаю. Как я понял, в проекте мне надо выбрать модуль в библиотеке ModulsOwenLib, там такого нет, я растерялся. не подскажете поподробней?

capzap
03.04.2015, 08:46
Я второй день с овеном работаю. Как я понял, в проекте мне надо выбрать модуль в библиотеке ModulsOwenLib, там такого нет, я растерялся. не подскажете поподробней?

количество моих дней с овеном четырехзначное число, не прочитав Ваш первый пост я так и не понял что Вы имели ввиду.

Вам надо взять документацию на модуль и прочитать до конца, разобраться какие регистры интересуют и их то запросить хоть через библиотеку, хоть через конфигурацию

Yegor
03.04.2015, 08:48
ModulsOwenLibЭто из другой оперы — для третьего Кодесиса. Здесь тема по второму идёт.

Эдуард_Н
03.04.2015, 11:11
Есть блок управления тремя сетевыми насосами. Всё ничего, но если какой ни будь насос встаёт по аварии, то ротация насосов отключается. Как бы его переделать, чтобы если только один насос вышел из строя ротация продолжалась, а останавливалась только если два в аварии.

shagin
03.04.2015, 11:25
Добрый день! Задача: измерение длинны металла и управление двигателем и исполнительными механизмами (ИП320+ПЛК100+ПЧВ1). Для измерения использую ПЛК100 и энкодер ENC1-1-Т-24 (скорость линии маленькая и позволяет ПЛК получать импульсы с энкодера). В конфигурации добавил encoder 16bit и назначил первые два входа "a" и "b". Вопрос: как правильно в программе обрабатывать полученные сигналы для счета? достаточно подключить на счетчик (CTU) или нужен какой то алгоритм? Пишу программу на CFC. Подключил к CTU - считает, ковыряясь в настройках получается что то похожее (но я использовал только имп. А, а B не использовал). На форуме много смотрел, но ничего полезного в моем случае нет, или не увидел. Подскажите где можно почитать или поискать по моему вопросу.

petera
03.04.2015, 11:45
Добрый день! Задача: измерение длинны металла и управление двигателем и исполнительными механизмами (ИП320+ПЛК100+ПЧВ1). Для измерения использую ПЛК100 и энкодер ENC1-1-Т-24 (скорость линии маленькая и позволяет ПЛК получать импульсы с энкодера). В конфигурации добавил encoder 16bit и назначил первые два входа "a" и "b". Вопрос: как правильно в программе обрабатывать полученные сигналы для счета? достаточно подключить на счетчик (CTU) или нужен какой то алгоритм? Пишу программу на CFC. Подключил к CTU - считает, ковыряясь в настройках получается что то похожее (но я использовал только имп. А, а B не использовал). На форуме много смотрел, но ничего полезного в моем случае нет, или не увидел. Подскажите где можно почитать или поискать по моему вопросу.
Ни каких CTU использовать не надо. Программно не нужно обрабатывать сигналы для счета, модуль это делает сам, а результат будет находится в переменной (*Position*)

shagin
03.04.2015, 12:10
Ни каких CTU использовать не надо. Программно не нужно обрабатывать сигналы для счета, модуль это делает сам, а результат будет находится в переменной (*Position*)

Спасибо. немного понятнее. Объявил переменную в конфигурации "position". У нее меняются значения от 0 до 3. потом заново - получается сбрасывается. теперь мне надо сделать алгоритм подсчета с пременной posirion? может есть какие нароботки на форуме?

petera
03.04.2015, 12:51
Спасибо. немного понятнее. Объявил переменную в конфигурации "position". У нее меняются значения от 0 до 3. потом заново - получается сбрасывается. теперь мне надо сделать алгоритм подсчета с пременной posirion? может есть какие нароботки на форуме?
Параметры конфигурации модуля посмотрите в документе PLC_Configuration_OWEN.pdf на диске к ПЛК и задайте в соответствии с паспортными данными
энкодера
17498
17499

amn
03.04.2015, 15:49
Есть блок управления тремя сетевыми насосами. Всё ничего, но если какой ни будь насос встаёт по аварии, то ротация насосов отключается. Как бы его переделать, чтобы если только один насос вышел из строя ротация продолжалась, а останавливалась только если два в аварии.

Мне проще было заново написать, правда на ST, но его можно использовать и в CFC, комментарии есть.

black-hol
03.04.2015, 17:58
Для одновременной - строго 1. ))

Т.Е получается что для регулирования P подпитки и Р в диараторе надо два ПЛК

Yegor
03.04.2015, 20:18
Не знаю, почему так сказал Валенок, но в разумных пределах ПЛК потянет сколько угодно регуляторов даже одновременно (а что такое в ПЛК «одновременно»?). Вопрос лишь в том, как вы свяжете эти регуляторы с железом. Если входов и выходов хватает, то — вперёд!

Эдуард_Н
03.04.2015, 20:35
Мне проще было заново написать, правда на ST, но его можно использовать и в CFC, комментарии есть.

Да то что доктор прописал. Только наружу надо вытащить время ротации и сигнал на запуск. И конечно хотелось бы увидеть всё это в CFC.

amn
03.04.2015, 22:50
Эдуард, вложение поправил. Там есть подробные комментарии. Если есть вопросы задавайте. Все равно когда-нибудь придется ST изучать. Просто есть вещи, которые на ST гораздо проще сделать.

Эдуард_Н
04.04.2015, 04:12
Эдуард, вложение поправил. Там есть подробные комментарии. Если есть вопросы задавайте. Все равно когда-нибудь придется ST изучать. Просто есть вещи, которые на ST гораздо проще сделать.

Спасибо. Да, согласен на ST есть вещи которые проще, но трудно он мне даётся.
И ещё не плохо было бы добавить переключатель зима-лето. Зимой 2-а насоса работают, летом один. Ещё раз спасибо.

жекон
04.04.2015, 06:36
Спасибо. Да, согласен на ST есть вещи которые проще, но трудно он мне даётся.
И ещё не плохо было бы добавить переключатель зима-лето. Зимой 2-а насоса работают, летом один. Ещё раз спасибо.
Я например делал так открывал 2 Codesys-а в одном проект на CFC и переносил на ST, поймете конструкцию языка, синтаксис.Еще хорошо помогает разбор примеров ну и справка

Эдуард_Н
04.04.2015, 07:33
Я например делал так открывал 2 Codesys-а в одном проект на CFC и переносил на ST, поймете конструкцию языка, синтаксис.Еще хорошо помогает разбор примеров ну и справка

Если этот CHANGE_PUMPS.ZIP проект кто ни будь перевёл в CFC полностью, то сравнивая 2-а проекта я бы продвинулся в изучении ST. У меня пока вот что получилось:

жекон
04.04.2015, 07:41
Если этот CHANGE_PUMPS.ZIP проект кто ни будь перевёл в CFC полностью, то сравнивая 2-а проекта я бы продвинулся в изучении ST. У меня пока вот что получилось:
Сейчас некогда три проекта висят, надо ещё "вчера" сдать если не горит разгребу переведу

Эдуард_Н
04.04.2015, 07:43
Сейчас некогда три проекта висят, надо ещё "вчера" сдать если не горит разгребу переведу

Конечно не горит. Заранее спасибо!!

capzap
04.04.2015, 08:54
Если этот CHANGE_PUMPS.ZIP проект кто ни будь перевёл в CFC полностью, то сравнивая 2-а проекта я бы продвинулся в изучении ST. У меня пока вот что получилось:

любое поу, на том же ST, конвертируется в FBD, а далее уже можно собрать всё в кучу на одном холсте CFC. Вот Вам и будет тренировка, а не пустые заявления о Вашей обучаемости в дальнейшем

жекон
04.04.2015, 09:10
любое поу, на том же ST, конвертируется в FBD, а далее уже можно собрать всё в кучу на одном холсте CFC. Вот Вам и будет тренировка, а не пустые заявления о Вашей обучаемости в дальнейшем
Да capzap прав попробуйте хорошая тренировка

Эдуард_Н
04.04.2015, 09:43
Из этого может что ни будь и получиться... Начал пробывать.
Вроде потихоньку идёт, не пойму к чему привязан вход IN блока TON.

amn
04.04.2015, 12:21
не пойму к чему привязан вход IN блока TON
Выход таймера Q привязан к своему же входу IN с инверсией. Таким образом он выдает импульсы через заданный промежуток времени.

Вы пошли сильно сложным путем. Наверное будет проще не в CFC переводить, а наоборот из CFC в ST. Намного проще будет разобраться.

Эдуард_Н
04.04.2015, 12:42
Выход таймера Q привязан к своему же входу IN с инверсией. Таким образом он выдает импульсы через заданный промежуток времени.

Вы пошли сильно сложным путем. Наверное будет проще не в CFC переводить, а наоборот из CFC в ST. Намного проще будет разобраться.

Просто я хочу понять принцип построения вашего блока. Что бы в CFC строить такое же, пока дошёл только до этого:

amn
04.04.2015, 13:23
Для этого проще узнать что такое IF и что такое CASE. Описание есть в файле CoDeSys_V23_RU.pdf стр. 23-24. Также посмотрите как в ST используются функциональные блоки R_TRIG (стр. 345) и TON (стр.350). Остальное Вы знаете.

Добавил зимний переключатель и еще немного комментариев.

Эдуард_Н
04.04.2015, 13:41
Попробовал новый Ваш блок с зимним переключателем, в режиме зима аварии не работают. Так задумано?

amn
04.04.2015, 14:13
Поторопился, забыл проверить аварии. Уже поправил.

100xanoff
05.04.2015, 17:00
Простейший вопрос: как реализовать чтобы нажатие кнопки(дискретного входа) меняло положение выхода на противоположное?

И как сделать тоже самое, но чтобы была возможность фильтровать нажатия по длительности в миллисекундах?

capzap
05.04.2015, 17:15
Простейший вопрос: как реализовать чтобы нажатие кнопки(дискретного входа) меняло положение выхода на противоположное?

И как сделать тоже самое, но чтобы была возможность фильтровать нажатия по длительности в миллисекундах?

самое простое изучить документацию http://www.kipshop.ru/CoDeSys/steps/codesys_v23_ru.pdf. Разобраться что такое F_TRIG и R_TRIG, по переднему фронту меняете состояние, это выполняется через элемент NE (в текстовых языках NOT), по заднему фронту вычисляете сколько времени нажмали на кнопку

100xanoff
05.04.2015, 17:52
самое простое изучить документацию http://www.kipshop.ru/CoDeSys/steps/codesys_v23_ru.pdf. Разобраться что такое F_TRIG и R_TRIG, по переднему фронту меняете состояние, это выполняется через элемент NE (в текстовых языках NOT), по заднему фронту вычисляете сколько времени нажмали на кнопку

Спасибо, это все я читал и пытался реализовать, но что-то не смог заставить данную схему работать... Не понятно как указывать в данном языке входы-выходы.

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

capzap
05.04.2015, 18:19
Не понятно как указывать в данном языке входы-выходы.

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

а Вы где то упомянули что у Вас за контроллер? Есть другой документ http://www.kipshop.ru/CoDeSys/steps/owen_plc-configuration.pdf там расписано как именовать кaнaл чтобы пользоваться этой переменной в любом месте проекта

100xanoff
05.04.2015, 18:25
а Вы где то упомянули что у Вас за контроллер? Есть другой документ http://www.kipshop.ru/CoDeSys/steps/owen_plc-configuration.pdf там расписано как именовать кaнaл чтобы пользоваться этой переменной в любом месте проекта

О, спасибо. Такого документа не видел. У меня ПЛК110-60Р. старого образца.
Как именовать каналы, я понял из видео-инструкции. А вот как использовать его в FBD так и не понял. Попробую найти время чтобы разобраться.
Может все-таки найдется примерчик?

capzap
05.04.2015, 18:34
О, спасибо. Такого документа не видел. У меня ПЛК110-60Р. старого образца.
Как именовать каналы, я понял из видео-инструкции. А вот как использовать его в FBD так и не понял. Попробую найти время чтобы разобраться.
Может все-таки найдется примерчик?

легче написать чем найти

100xanoff
05.04.2015, 18:47
легче написать чем найти

Большое спасибо.

Вот только не хватает 3 из 6 библиотек и целевой конфигурации. Можно их тоже до кучи приложить? И в первую очередь хотелось пример с R_TRIG-ом, хоть он и простейший.

capzap
05.04.2015, 18:55
Большое спасибо.

Вот только не хватает 3 из 6 библиотек и целевой конфигурации. Можно их тоже до кучи приложить? И в первую очередь хотелось пример с R_TRIG-ом, хоть он и простейший.
так удалите лишние библиотеки, а по поводу целевой платформы, я использовал плк110-60М

100xanoff
05.04.2015, 18:58
ок, спасибо.

Ramza
07.04.2015, 17:25
Здравствуйте! Помогите решить задачу. Есть автоклав. Есть ПЛК150. Есть небольшой опыт программирования в CodeSys, которого не хватает для выполнения задачи. Собственно застопорился на том, что не могу придумать/найти как реализовать выход на заданную уставку за заданное время. Конкретно- нужно плавно понижать и повышать температуру за установленное время в автоклаве. Можете посоветовать как это реализовать? Да, еще забыл. Температура регулируется двухпозиционными клапанами, т.е. дискретные выходы.

Василий Кашуба
07.04.2015, 19:42
Здравствуйте! Помогите решить задачу. Есть автоклав. Есть ПЛК150. Есть небольшой опыт программирования в CodeSys, которого не хватает для выполнения задачи. Собственно застопорился на том, что не могу придумать/найти как реализовать выход на заданную уставку за заданное время. Конкретно- нужно плавно понижать и повышать температуру за установленное время в автоклаве. Можете посоветовать как это реализовать? Да, еще забыл. Температура регулируется двухпозиционными клапанами, т.е. дискретные выходы.
Вот вам схема трапецевидного графика, с выхода (INT) подавайте на ПИД регулятор, на вход (SP). Если будут вопросы пишите в личку.

_Pavel_
08.04.2015, 13:56
Подскажите, плиз: какое максимальное количество регистров можно записать за раз с помощью функции MODBUS - 16 Preset Multiple Registers, при использовании библиотеки modbus.lib. ?

Kavoo
09.04.2015, 00:22
Здравствуйте. Хочу поморгать реле с периодом в 2 сек. Дана программа ааа. В PLC_PRG кроме нее ни чего нет. Почему не работает сия конструкция:17616

petera
09.04.2015, 01:07
Здравствуйте. Хочу поморгать реле с периодом в 2 сек. Дана программа ааа. В PLC_PRG кроме нее ни чего нет. Почему не работает сия конструкция:
17616
Потому, что таймеры нужно вызывать еще один раз, после конструкции IF

Yegor
09.04.2015, 06:14
Kavoo, так вообще не пишут. Вариант 1 (Util.lib):
VAR
blinker: BLINK := (TIMELOW := T#1s, TIMEHIGH := T#1s);
doBlink: BOOL;

a13_3: BOOL;
END_VAR

blinker(ENABLE := doBlink, OUT => a13_3);Вариант 2 (TON):
VAR
blinker: TON := (PT := T#2s);
doBlink: BOOL;
a13_3: BOOL;
END_VAR

blinker(IN := NOT blinker.Q AND doBlink);
a13_3 := blinker.ET > T#1s;Вариант 3 (ленивый/отладочный с некорректным первым периодом):
VAR
doBlink: BOOL;
a13_3: BOOL;
END_VAR

a13_3 := doBlink AND TIME_TO_DWORD(TIME()) MOD 2000 > 1000;

Kavoo
09.04.2015, 06:28
Почему? Это ограничение среды программирования? Разве повторный вызов таймера не обнуляет его текущего состояния?

Yegor
09.04.2015, 06:42
Таймер не будет считать сам по себе. Его нужно постоянно вызывать, и вы этого не делаете. Это не ограничение среды, это суть среды.

Kavoo
09.04.2015, 06:51
Если вставить вызов таймера после IF, моргание идет не регулярно.

Kavoo
09.04.2015, 07:01
Спасибо за отклик Yegor. Ваши процедуры работают. Извините меня за навязчивость, просто хочу понять почему не работает мой вариант, чтоб не нарваться в будущем. Я же вызываю их поочередно, сначала t2 потом t1. Они же должны работать независимо от остальной программы, я же объявил ааа не как функцию, а как пользовательскую программу.

Kavoo
09.04.2015, 07:11
То ,что таймеры должны работать независимо от остальной программы - это не я придумал, я где то вычитал в литературе по CoDeSys. Получается если таймера нужно вызывать постоянно, то их временные интервалы которые они отсчитывают в процессе работы программы, окажутся больше заданных?

Yegor
09.04.2015, 07:23
То ,что таймеры должны работать независимо от остальной программы - это не я придумал, я где то вычитал в литературе по CoDeSys.Пруф?
Получается если таймера нужно вызывать постоянно, то их временные интервалы которые они отсчитывают в процессе работы программы, окажутся больше заданных?Любые временные интервалы по точности ограничиваются временем цикла ПЛК. Ну, за исключением быстрых входов и выходов, но это совсем другая история.

Ваш код работает у меня вот в таком виде:
VAR
t1: TON := (PT := T#1s);
t2: TON := (PT := T#1s);
ddd: BOOL := TRUE;
a13_3: BOOL;
END_VAR

IF t1.Q OR ddd THEN a13_3 := FALSE; t1(IN := FALSE); t2(IN := TRUE); ddd := FALSE; END_IF
IF t2.Q THEN a13_3 := TRUE; t2(IN := FALSE); t1(IN := TRUE); END_IF
t1();
t2();

Но повторюсь: так писать не надо. Это невозможно отлаживать.

Kavoo
09.04.2015, 08:05
Пруф — единица крепости алкоголя, равная 0,5 % содержания спирта *Вики :D

Kavoo
09.04.2015, 08:07
Премного благодарен за исчерпывающие ответы:) Буду работать дальше.

shagin
09.04.2015, 11:49
добрый день. подключил энкодер к плк100. в конфигурации добавил на вход Encoder 16 bit. беру сигнал со входа %IW0.1.0 (*Position*) и отправляю на функциональный блок (см. вложение), который нашел на форуме. работает, считает... но не совсем так как хотелось. поковырявшись в настройках получаю за один оборот примерно 1000 импульсов. методом деления на 4 перевожу в мм и вроде ничего. но вот в чем загвоздка: выход функционального блока выдает сигнал (импульсы)не чередуя (...434,435,436,437), а через какой то интервал (...,545,564,587, и т.д). при делении соответственно интервал меньше.
может с этим ФБ надо использовать counter 16 bit?
смотрю не понимаю как работает это ФБ. может кто подскажет? или надо вообще что то другое использовать?

VanoKing
13.04.2015, 14:37
Имеется контроллер ПЛК100 и модуль с аналоговыми выходами МУ110-6У. Связь с модулем идет(моргает светодиод RS-485)
Пытаюсь вывести на первый аналоговый выход 10В, но неполучается, что не так?

17697

приборист
13.04.2015, 14:43
Имеется контроллер ПЛК100 и модуль с аналоговыми выходами МУ110-6У. Связь с модулем идет(моргает светодиод RS-485)
Пытаюсь вывести на первый аналоговый выход 10В, но неполучается, что не так?

17697

Надо 1000 отправить.
И надо вставлять Register output module.

VanoKing
13.04.2015, 14:49
Надо 1000 отправить.
И надо вставлять Register output module.

Пробовал 1000 с Register output module, результат 0В
Подключал все по паспорту, только без подключения Rн
Может надо ставить не Modbus ASCII,а Modbus RTU?

Василий Кашуба
13.04.2015, 21:21
Пробовал 1000 с Register output module, результат 0В
Подключал все по паспорту, только без подключения Rн
Может надо ставить не Modbus ASCII,а Modbus RTU?
Вообще то надо проект предъявлять, чтобы вам ответили, где в вашем проекте ошибка.

VanoKing
14.04.2015, 08:28
Вообще то надо проект предъявлять, чтобы вам ответили, где в вашем проекте ошибка.

Проект во вложении

Все вопрос отпал, нашел ошибку, запись велась по функции 0х06, а надо было по 0х10

appetitoff
15.04.2015, 12:51
Доброго времени суток! Есть такое задание для освоения среды codesys:
При нажатии на кнопку пуск, звучит предупредительная
сигнализация и запускается основной вентилятор теплого воздуха 1. После
запуска основного вентилятора, включается топливный вентилятор 2 для
продувки (10 с). Затем включается топливный соленоидный клапан 3 и
топливная смесь закачивается в камеру сгорания (5 с). Срабатывает
запальная свеча 4 (4 с). Реле пламени 5 контроллирует наличие пламени.
Если пламя не появилось в течечние 5 с., процесс розжига выполняется еще
раз (с продувки воздухом 15с.). При повторном незапуске агрегата
включается продувка 1мин. и аварийная сигнализация. При нормальном
запуске агрегата, система должна контролировать температуру воздуха на
выходе термопреобразователем 6 и изменять скорость вращения топливного
вентилятора 2. При остановке агрегата, продувка должна осуществляться до
тех пор, пока температура не упадет ниже Тmin.
Я начинающий разработчик. ПЛК 100КМ. Пытаюсь сделать в CFC, но простыми функциональными блоками ну уж слишком сложно получается. Может есть ухищрения или готовые блоки в библиотеках?! Опытные люди, подскажите!

petera
15.04.2015, 13:07
Доброго времени суток! Есть такое задание для освоения среды codesys:
При нажатии на кнопку пуск, звучит предупредительная
сигнализация и запускается основной вентилятор теплого воздуха 1. После
запуска основного вентилятора, включается топливный вентилятор 2 для
продувки (10 с). Затем включается топливный соленоидный клапан 3 и
топливная смесь закачивается в камеру сгорания (5 с). Срабатывает
запальная свеча 4 (4 с). Реле пламени 5 контроллирует наличие пламени.
Если пламя не появилось в течечние 5 с., процесс розжига выполняется еще
раз (с продувки воздухом 15с.). При повторном незапуске агрегата
включается продувка 1мин. и аварийная сигнализация. При нормальном
запуске агрегата, система должна контролировать температуру воздуха на
выходе термопреобразователем 6 и изменять скорость вращения топливного
вентилятора 2. При остановке агрегата, продувка должна осуществляться до
тех пор, пока температура не упадет ниже Тmin.
Я начинающий разработчик. ПЛК 100КМ. Пытаюсь сделать в CFC, но простыми функциональными блоками ну уж слишком сложно получается. Может есть ухищрения или готовые блоки в библиотеках?! Опытные люди, подскажите!
Сначала нужно в обязательном порядке "Срабатывает запальная свеча 4 (4 с)", затем "включается топливный соленоидный клапан 3 и топливная смесь закачивается в камеру сгорания (5 с)" + "Реле пламени 5 контроллирует наличие пламени.
Если пламя не появилось в течечние 5 с., процесс розжига выполняется еще раз (с продувки воздухом 15с.)".
А если сделаете в той последовательности как у Вас, то с Вашим агрегатом будет это

https://www.youtube.com/watch?v=zCrD79sdirY

Василий Кашуба
15.04.2015, 13:10
Доброго времени суток! Есть такое задание для освоения среды codesys:
При нажатии на кнопку пуск, звучит предупредительная
сигнализация и запускается основной вентилятор теплого воздуха 1. После
запуска основного вентилятора, включается топливный вентилятор 2 для
продувки (10 с). Затем включается топливный соленоидный клапан 3 и
топливная смесь закачивается в камеру сгорания (5 с). Срабатывает
запальная свеча 4 (4 с). Реле пламени 5 контроллирует наличие пламени.
Если пламя не появилось в течечние 5 с., процесс розжига выполняется еще
раз (с продувки воздухом 15с.). При повторном незапуске агрегата
включается продувка 1мин. и аварийная сигнализация. При нормальном
запуске агрегата, система должна контролировать температуру воздуха на
выходе термопреобразователем 6 и изменять скорость вращения топливного
вентилятора 2. При остановке агрегата, продувка должна осуществляться до
тех пор, пока температура не упадет ниже Тmin.
Я начинающий разработчик. ПЛК 100КМ. Пытаюсь сделать в CFC, но простыми функциональными блоками ну уж слишком сложно получается. Может есть ухищрения или готовые блоки в библиотеках?! Опытные люди, подскажите!
Блок управления розжигом и сигнализацией, такой?17728

DmitriiAnyushin
15.04.2015, 13:33
Здравствуйте! Подскажите пожалуйста: имеется контроллер PLC110 и панель СП270. В контроллере располагается массив из переменных времени (DATA_AND_TIME). Каким образом я могу отобразить данные переменные на панели? Спасибо!

appetitoff
15.04.2015, 14:44
Дело в том, что моя цель: научиться работать в codesys. По этому я нашел пару заданий в интернете для выполнения в codesys и пытаюсь собственными силами их выполнить. Пока что это язык CFC. Подскажите какими блоками лучше воспользоваться или хотя-бы внятную последовательность действий. P.S.: ПЛК можно любой фирмы ОВЕН, просто под рукой стэнд с ПЛК 100км. Спасибо.

petera
15.04.2015, 14:56
Дело в том, что моя цель: научиться работать в codesys. По этому я нашел пару заданий в интернете для выполнения в codesys и пытаюсь собственными силами их выполнить. Пока что это язык CFC. Подскажите какими блоками лучше воспользоваться или хотя-бы внятную последовательность действий. P.S.: ПЛК можно любой фирмы ОВЕН, просто под рукой стэнд с ПЛК 100км. Спасибо.
Весь Ваш алгоритм элементарно сделать на языке SFC.

shagin
15.04.2015, 15:14
Дело в том, что моя цель: научиться работать в codesys. По этому я нашел пару заданий в интернете для выполнения в codesys и пытаюсь собственными силами их выполнить. Пока что это язык CFC. Подскажите какими блоками лучше воспользоваться или хотя-бы внятную последовательность действий. P.S.: ПЛК можно любой фирмы ОВЕН, просто под рукой стэнд с ПЛК 100км. Спасибо.

Для начала необходимо ознакомиться с мануалом codesys (usermanual v2.3). Там все написано (про блоки). В кодесис справка нормальная, можно и там посмотреть. Я тоже учусь, только начинал с элементарных программ. А вы сразу хотите)))

appetitoff
15.04.2015, 15:20
Для начала необходимо ознакомиться с мануалом codesys (usermanual v2.3). Там все написано (про блоки). В кодесис справка нормальная, можно и там посмотреть. Я тоже учусь, только начинал с элементарных программ. А вы сразу хотите)))

Так я это все уже прочитал и посмотрел. Элементарные примеры делаю, а вот чуть по сложнее не выходит. Чувствую, что не должно все так сложно получаться, что есть готовые блоки, которые упростят мне жизнь! ;)

maksimdob
15.04.2015, 16:00
Как сделать задержку включения и выключения реле, значение которой нужно отображать и изменять в HMI 17732

energvk
15.04.2015, 16:27
Как сделать задержку включения и выключения реле, значение которой нужно отображать и изменять в HMI 17732

Добавьте TON и TOF.

SA104
16.04.2015, 08:04
Добрый день.
В установленной Codesys 3.5 почему-то отсутствуют некоторые элементы визуализации - а именно лампочки,
вместо них индикатор со стрелкой. Библиотеки ставил из образа диска, который идет в комплекте к СПК.
И попутно еще вопрос - как переключаться между визуализациями на СПК средствами CFC?

nebel2
21.04.2015, 09:18
Здравствуйте. Нужна помощь по алгоритму работы.
Есть три входные переменные: p1,p2,U и одна выходная r1.
p1 и p2 - биты управления контакторами k1 и k2 соответственно. U - величина напряжения. r1 - дискретный выход управления контактором к2.
При подаче команды p1 на включение контактора k1 переменная "U" возрастает до установленной величины (800В).
Необходимо организовать работу контактора k2.
Условие работы:
При включенном контакторе k1 и/или наличия напряжения U(800В) ( контактор k2 НЕ должен быть включен (r1=FALSE).
НО при включенном k2 ( бит управления p2) можно замыкать k1 (бит управления p1) ( r1=TRUE).
Основная программа написана на языке CFC.

Василий Кашуба
21.04.2015, 09:23
Здравствуйте. Нужна помощь по алгоритму работы.
Есть три входные переменные: p1,p2,U и одна выходная r1.
p1 и p2 - биты управления контакторами k1 и k2 соответственно. U - величина напряжения. r1 - дискретный выход управления контактором к2.
При подаче команды p1 на включение контактора k1 переменная "U" возрастает до установленной величины (800В).
Необходимо организовать работу контактора k2.
Условие работы:
При включенном контакторе k1 и/или наличия напряжения U(800В) ( контактор k2 НЕ должен быть включен (r1=FALSE).
НО при включенном k2 ( бит управления p2) можно замыкать k1 (бит управления p1) ( r1=TRUE).
Основная программа написана на языке CFC.
А показать программу можете?

_Mikhail
21.04.2015, 09:25
Условие работы:
При включенном контакторе k1 и/или наличия напряжения U(800В)
Так что именно?

nebel2
21.04.2015, 09:36
Программа большая, с множеством подпрограмм. А вот этот кусочек не могу осилить.

nebel2
21.04.2015, 09:38
При включении k1 напряжение возрастает до 800 В в течении 15 секунд.

nebel2
21.04.2015, 09:47
Скрин части программы
17836

Василий Кашуба
21.04.2015, 10:10
Скрин части программы
17836
Добавьте на AND2 ещё один вход и подайте на него инвертированный к1.

nebel2
21.04.2015, 10:18
тогда не выполнится условие
НО при включенном k2 ( бит управления p2) можно замыкать k1 (бит управления p1) ( r1=TRUE).

Василий Кашуба
21.04.2015, 11:29
тогда не выполнится условие
НО при включенном k2 ( бит управления p2) можно замыкать k1 (бит управления p1) ( r1=TRUE).
В приложенной вами схеме, ничего не запрещает включиться к1, кроме аварии.

nebel2
21.04.2015, 11:53
Если добавить инверсный вход к1 ко второму AND, то при включенном p2 и включении р1 r1=FALSE, а нужно чтобы было TRUE

Василий Кашуба
21.04.2015, 14:20
Если добавить инверсный вход к1 ко второму AND, то при включенном p2 и включении р1 r1=FALSE, а нужно чтобы было TRUE
В приложенной вами схеме, нет переменной r1.

nebel2
21.04.2015, 14:31
Схему пришлось упростить, поэтому r1=k2. r1 я обозначил как дискретный выход ПЛК. На той схеме что я представил это k2.

nebel2
21.04.2015, 14:37
Необходимо организовать включение p1 при включенном p2. Но если p1 включен изначально p2 не должен включаться.( p2 может включиться только после выключения p1)

Василий Кашуба
21.04.2015, 15:13
Необходимо организовать включение p1 при включенном p2. Но если p1 включен изначально p2 не должен включаться.( p2 может включиться только после выключения p1)
17838 Ну, не знаю, у меня всё включается.

nebel2
21.04.2015, 15:42
17839
Сначала включил p2 в следствии этого включился k2. Затем включил p1 и к2 отключился. Но он , по условию задачи" не должен отключаться!

Василий Кашуба
21.04.2015, 16:41
17839
Сначала включил p2 в следствии этого включился k2. Затем включил p1 и к2 отключился. Но он , по условию задачи" не должен отключаться!
Значит не такая схема у вас. 17841

nebel2
21.04.2015, 17:47
Попробуйте в Вашей схеме включить сначала р2. После этого, если нет аварии, должен включиться к2. Затем включите p1. Что происходит? У меня к2 выключается.

Василий Кашуба
21.04.2015, 18:40
Попробуйте в Вашей схеме включить сначала р2. После этого, если нет аварии, должен включиться к2. Затем включите p1. Что происходит? У меня к2 выключается.
Я так и делал, и рисунок вам показал, что всё включается. Но у нас схемы разные, а вы не хотите сделать как у меня.

capzap
21.04.2015, 19:36
Здравствуйте. Нужна помощь по алгоритму работы.
Есть три входные переменные: p1,p2,U и одна выходная r1.
p1 и p2 - биты управления контакторами k1 и k2 соответственно. U - величина напряжения. r1 - дискретный выход управления контактором к2.
При подаче команды p1 на включение контактора k1 переменная "U" возрастает до установленной величины (800В).
Необходимо организовать работу контактора k2.
Условие работы:
При включенном контакторе k1 и/или наличия напряжения U(800В) ( контактор k2 НЕ должен быть включен (r1=FALSE).
НО при включенном k2 ( бит управления p2) можно замыкать k1 (бит управления p1) ( r1=TRUE).
Основная программа написана на языке CFC.

так чтоли?

Kavoo
22.04.2015, 07:15
Здравствуйте. Контроллер ПЛК110. Настраиваем прерывание по таймеру, инициализируем его SetIRQ();, работаем. Все работает как надо, но при перезагрузки ПЛК прерывание перестает работать, помогает только отключение ПЛК от сети. В чем может быть загвоздка?

nebel2
22.04.2015, 09:41
Василий Кашуба, спасибо, Ваша схема работает.
capzap, спасибо, буду разбираться с вашей схемой.
Благодарю за помощь.

Dimmer88
22.04.2015, 09:54
Добрый день. Подскажите новичку. ПЛК 100-24.К-М плюс энкодер oss-05-2hc ( 500 имп/об). Энкодер запитан от 24В, его выходы А и В, подключены к 1 и 2 дискретным входам ПЛК соответственно. Фильтрацию этих входов установил "-1". Добавил подэлемент "Encoder 16bit" Дал ему имя допустим "pos". Ну для начала допустим нужно посчитать 2000 импульсов и подать сигнал на 1ый дискр.выход. Проблема в том что ПЛК вообще ничего не считает. Подскажите что я делаю не так. За ранее спасибо.17864

Yegor
22.04.2015, 11:25
Подскажите что я делаю не так.Вы не читаете руководство в той части, где написано, что энкодер обнуляется каждый цикл (справедливости ради, руководства местами написаны не очень):
После чтения программой ПЛК значения триггера, оно обнуляется, т.е. за цикл ПЛК значения не только считываются, но и обнуляются, соответственно, накопления в триггере нет, и, при необходимости суммирования, исполнение этой функции осуществляется в программе.То есть копить значения вы должны сами. Сделайте так:

17866

Dimmer88
22.04.2015, 11:59
Спасибо большое за ответ. Понял свою проблему.Но все равно не считает. Взял второй энкодер. Думал проблема в нем. Но нет. Что еще может быть? может сам энкодер не подходит?

shagin
22.04.2015, 12:47
Спасибо большое за ответ. Понял свою проблему.Но все равно не считает. Взял второй энкодер. Думал проблема в нем. Но нет. Что еще может быть? может сам энкодер не подходит?

Заезжанная тема. надо форум читать. здесь ранее я описывал такую проблемму. люди предлагали решение. надо выложить проект. так вам ничего не скажут.
как вы считаете импульсы?

Гарчев Евгений
22.04.2015, 19:26
Спасибо большое за ответ. Понял свою проблему.Но все равно не считает. Взял второй энкодер. Думал проблема в нем. Но нет. Что еще может быть? может сам энкодер не подходит?

Как подключили энкодер к ПЛК, какой выход с энкодера на какую клемму ПЛК/блока питания?

Dimmer88
23.04.2015, 10:23
Как подключили энкодер к ПЛК, какой выход с энкодера на какую клемму ПЛК/блока питания?
У энкодера 4 выхода. +24В, 0V.COM, Сигнал А, Сигнал В.
+24В к плюсу блока питания,
0V к минусу БП,
сигнал А к первому дискр.входу плк100,
сигнал В ко второму дискретному входу ПЛК100.
Правильно ?

petera
23.04.2015, 11:04
У энкодера 4 выхода. +24В, 0V.COM, Сигнал А, Сигнал В.
+24В к плюсу блока питания,
0V к минусу БП,
сигнал А к первому дискр.входу плк100,
сигнал В ко второму дискретному входу ПЛК100.
Правильно ?
Т.к. выходы А и В энкодера с открытым коллектором
17877
то при таком подключении как Вы сделали, никакого напряжения с выхода энкодера нет.
Нужно использовать внешние резисторы между входами ПЛК и +24В
17878
ЗЫ. Т.к. эта схема подключения инвертирует сизналы, то при подключении энкодера к ПЛК нужно поменять местами А и В, а то счет будет идти в обратную сторону.

Dimmer88
23.04.2015, 13:40
Т.к. выходы А и В энкодера с открытым коллектором
17877
то при таком подключении как Вы сделали, никакого напряжения с выхода энкодера нет.
Нужно использовать внешние резисторы между входами ПЛК и +24В
17878
ЗЫ. Т.к. эта схема подключения инвертирует сизналы, то при подключении энкодера к ПЛК нужно поменять местами А и В, а то счет будет идти в обратную сторону.

Спасибо огромное ВАМ... Все заработало!!!!

CleanS
28.04.2015, 11:18
Добрый день!
Где можно более подробно почитать про создание визуализаций в CoDeSys v2 ???
В книге есть только про светофор. Этого мало.

Евгений Кислов
28.04.2015, 12:08
Добрый день!
Где можно более подробно почитать про создание визуализаций в CoDeSys v2 ???
В книге есть только про светофор. Этого мало.

Читали этот документ?
http://www.kipshop.ru/CoDeSys/steps/codesys_visu_v23_ru.pdf

CleanS
28.04.2015, 12:17
Читали этот документ?
http://www.kipshop.ru/CoDeSys/steps/codesys_visu_v23_ru.pdf

Вот его-то мне и не хватало!!! Спасибочки!!!

Kavoo
02.05.2015, 15:08
С праздником всех! Народ, почему объявление локальной переменной в функции через 'AT' не вызывает ошибку компиляции? Что с происходит с этой переменной после вызова функции?

Yegor
02.05.2015, 15:51
почему объявление локальной переменной в функции через 'AT' не вызывает ошибку компиляции?По стандарту в функциях действительно не допускается объявление таких переменных. Однако компилятор CoDeSys 2.x во многом забивает на этот стандарт — в частности на правило указывать в документации, что поддерживается и что не поддерживается. См. мои сообщения в теме CoDeSys v2.3 (http://owen.ru/forum/showthread.php?t=2006&p=142045&viewfull=1#post142045).


Что с происходит с этой переменной после вызова функции?Тут интереснее будет посмотреть, что происходит до вызова. По идее, если вы указываете расположение переменной в памяти через AT, то пропадает необходимость выделять и освобождать память под эту переменную. Получается то же самое, что обращение через объявленный в функции указатель на глобльную переменную — какая разница, что будет с указателем после вызова функции? Под вопросом остаётся инициализация, которая происходит после создания фрейма функции.

Kavoo
02.05.2015, 16:42
Понятно, глобальный указатель значит - пусть будет указатель. Спасибо за ответ:)

Ingohor
04.05.2015, 14:48
Добрый день! PLC_PRG - перестал исполняется. Компиляция проходит успешно, но данная функция не вызывается.
18003

Василий Кашуба
04.05.2015, 15:36
Добрый день! PLC_PRG - перестал исполняется. Компиляция проходит успешно, но данная функция не вызывается.
18003
День добрый. Вы ответьте, для чего этот скрин показали? По нему ответить на ваш вопрос, всё равно, что по фотографии ребёнка, ответить, почему он не слушается. Давайте ваш проект.

Ingohor
04.05.2015, 17:19
Проект (https://drive.google.com/file/d/0B6zG9wOgyRDSaVJjemRETXNWN1k/view?usp=sharing)

Просто подумал, что это стандартный случай :)

Вольд
04.05.2015, 17:27
Добрый день! PLC_PRG - перестал исполняется. Компиляция проходит успешно, но данная функция не вызывается.
18003
Чтобы функция исполнялась ее надо вызывать. А до этого надо еще исправить ошибки о которых сообщает компилятор.

Ingohor
04.05.2015, 17:35
Чтобы функция исполнялась ее надо вызывать.

PLC_PRG - эта стандартная функция, которя должна всегда выполнятся

Вольд
04.05.2015, 17:37
PLC_PRG - эта стандартная функция, которя должна всегда выполнятся

Как может исполняться программа в которой есть ошибки ?

Ingohor
04.05.2015, 17:47
Как может исполняться программа в которой есть ошибки ?

Обновил :) Но, все равно вопрос актуален :)

Вольд
04.05.2015, 18:05
Обновил :) Но, все равно вопрос актуален :)
Ты там что-то в Task configuration намудил. Вот проект работающий.

Ingohor
04.05.2015, 18:22
Ты там что-то в Task configuration намудил. Вот проект работающий.
Спасибо, но оно работает когда нет Task, когда создаю любой. То опять перестает работать :(

ASo
04.05.2015, 18:34
Так включите ее в таск конфигуратор.

Вольд
04.05.2015, 18:34
Спасибо, но оно работает когда нет Task, когда создаю любой. То опять перестает работать :(
Вот и разбирайся с Task.

Вольд
04.05.2015, 20:32
Вот так работает, иначе никак.

Эдуард_Н
05.05.2015, 12:17
Напомните мне, при смене IP адреса в ПЛК160 после команды SetIP писать новый адрес? С пробелом нет?
Вопрос снимаю, всё выяснилось.

Антусов
05.05.2015, 21:14
Добрый день. Скажите пожалуйста как вывести на печать проект написанный на языке CFC из CoDeSys?? Или есть возможность сохранить проект как изображение, чтобы в дальнейшем вставить в файл автокада?

CleanS
07.05.2015, 11:37
Добрый день!
Вопрос по визуализации.
Отображаю переменную (REAL). Мне нужно чтобы было 2 знака после запятой (по умолчанию там 6 знаков). Согласно документации после символа форматирования нужно указать необходимое число знаков после запятой в виде количества букв "d", после символа.
18062
Пишем как указано в документации..
18063
Не получается ...
18064
В чём подвох??? Как правильно записать форматирование???

Спасибо!

Yegor
07.05.2015, 11:46
%.2f

я зевнул

CleanS
07.05.2015, 11:56
%.2f

я зевнул


:( .... не работает ....

:confused:

Извиняюсь .... нашёл свой косяк ... всё работает... забыл поставить "."

_Mikhail
07.05.2015, 12:32
Для отображения двух символов после запятой в переменной REAL записывается % 3.2f . Где число после точки указывает на количество знаков после запятой

CleanS
07.05.2015, 13:07
Для отображения двух символов после запятой в переменной REAL записывается % 3.2f . Где число после точки указывает на количество знаков после запятой

Спасибочки!!! Всё заработало!!!

Вопрос? А почему именно цифра "3"???

_Mikhail
07.05.2015, 13:29
Не обязательно 3, это я привел как пример

CleanS
07.05.2015, 13:58
Не обязательно 3, это я привел как пример

Понятно!!! Спасибо!

appetitoff
07.05.2015, 15:56
Добрый день! Пытаюсь связать ТРМ251 и ПЛК150 через протокол OWEN для программирования ТРМ. Необходимо задавать уставку, время задержки и время роста. Помогите советом или ссылками на похожие темы. Спасибо.

_Mikhail
07.05.2015, 16:16
Добрый день! Пытаюсь связать ТРМ251 и ПЛК150 через протокол OWEN для программирования ТРМ. Необходимо задавать уставку, время задержки и время роста. Помогите советом или ссылками на похожие темы. Спасибо.

Посмотри раздел Примеры работы с приборами ОВЕН имеющими интерфейс RS-485 http://www.owen.ru/catalog/codesys_v2/13257808

appetitoff
07.05.2015, 16:24
Посмотри раздел Примеры работы с приборами ОВЕН имеющими интерфейс RS-485 http://www.owen.ru/catalog/codesys_v2/13257808
Смотрел. По MODBUS все нормально подключаю и получаю информацию. А вот по Owen не могу понять где адрес пробора писать в конфигурации ПЛК и где адрес регистра, который интересует. Например информация с первого входа, куда подключен магазин сопротивлений.

appetitoff
07.05.2015, 16:26
18067
Вот пример

_Mikhail
07.05.2015, 16:35
Перед тем, как вставлять переменные, вставь сначала OWEN Slave. В котором и укажешь адрес прибора

appetitoff
07.05.2015, 16:42
Перед тем, как вставлять переменные, вставь сначала OWEN Slave. В котором и укажешь адрес прибора

И значит потом в OWEN SLAVE вставлять подэлементы типа float listen и там указывать в поле addres адрес прибора, а hash name это адрес переменной внутри самого прибора типа SP, tr.s и т.д. ?

ASo
07.05.2015, 16:56
Прочитайте в конце концов инстукцию. В ней приведены хэшь-коды для всех переменных.

appetitoff
07.05.2015, 17:14
Прочитайте в конце концов инстукцию. В ней приведены хэшь-коды для всех переменных.

Прочитал и не раз инструкцию. Добавил owen slave, float variable, задал адрес трма и переменную уставки 1 программы 1 шага. Стоит 300, а показывает ноль. Хэш нэйм SP поставил. https://pp.vk.me/c628816/v628816903/60b/4VDvO321dNg.jpg

appetitoff
07.05.2015, 18:12
Может кто кинет ссылку на подробное описание работы с протоколом OWEN, или видеоурок. Спасибо!

жекон
07.05.2015, 20:31
А что ТРМ251 может работать мастером?





18069 вот нашел

slepoy
07.05.2015, 21:41
Добрый вечер. Столкнулся с проблемой при программировании ПЛК63.
При попытке залить проект в контроллер, CoDeSys выдает ошибку "The max. number of POUs on the target is 512! The current number set in the programming sistem is 256."
Пытался менять таргет файлы, переустанавливал CoDeSys, проблема не меняется.
Пожалуйста подскажите в чем может быть проблема.
Версия прошивка ПЛК63 - 1.94 10 0с

ASo
07.05.2015, 22:03
Не верный таргет для данной прошивки. И прошивка безнадежно устаревшая. Давно идет 2.12.
Скачайте, прошейте и все зальется.
http://www.owen.ru/catalog/codesys_v2/72830689

slepoy
07.05.2015, 22:07
Там для замены прошивки нужен какой то переходник (для DBGU разъема), где его найти, и есть ли другая возможность замены прошивки.

ASo
07.05.2015, 22:10
Переходник идет в комплекте с контроллером.

slepoy
07.05.2015, 22:14
Спасибо за подсказку, буду искать переходник.

RV9WFJ
08.05.2015, 07:38
Не факт что зальется. Там реально есть ограничение по кол-ву POU в силу скудности процессора и ОЗУ. Поэтому если товарищ цепанет к проекту половину Oscat то проект не зальется. В силу этого обычно нет смысла покупать ПЛК63/73 с лицензией М.

appetitoff
08.05.2015, 09:39
А что ТРМ251 может работать мастером?





18069 вот нашел

Мастер - ПЛК, ТРМ251 - slave! Так вот я и пытаюсь подключить их по протоколу OWEN, для задания и отслеживания параметров! Но только пока не получается вытащить из ТРМ ничего!

petera
08.05.2015, 10:09
Мастер - ПЛК, ТРМ251 - slave! Так вот я и пытаюсь подключить их по протоколу OWEN, для задания и отслеживания параметров! Но только пока не получается вытащить из ТРМ ничего!
Тогда зачем Вы упорно пытаетесь использовать в конфигурации ПЛК Owen Slave

Прочитал и не раз инструкцию. Добавил owen slave, float variable, задал адрес трма
Когда нужно использовать Owen Master?
18077

slepoy
08.05.2015, 13:57
Так что в моем случае можно сделать ???
Или забыть об этом ПЛК, жалко ведь :(

slepoy
08.05.2015, 13:58
Не факт что зальется. Там реально есть ограничение по кол-ву POU в силу скудности процессора и ОЗУ. Поэтому если товарищ цепанет к проекту половину Oscat то проект не зальется. В силу этого обычно нет смысла покупать ПЛК63/73 с лицензией М.
slepoy
Пользователь
Регистрация
08.02.2013
Сообщений
4

Так что в моем случае можно сделать ???
Или забыть об этом ПЛК, жалко ведь

ASo
08.05.2015, 14:06
Если нет переходника - обратиться к любому дилеру, он перешьет.
Мучениями в течении 10 мир проект с Оскаром чудесно собирается.

slepoy
08.05.2015, 14:38
Если нет переходника - обратиться к любому дилеру, он перешьет.
Мучениями в течении 10 мир проект с Оскаром чудесно собирается.

Вы имеете в виду библиотеки oscat, а что с ними необходимо сделать, для успешного программирования ПЛК63 в моем случае???

ASo
08.05.2015, 16:22
По очереди добавлять нужные ФБ в проект.

appetitoff
08.05.2015, 17:06
Тогда зачем Вы упорно пытаетесь использовать в конфигурации ПЛК Owen Slave

Когда нужно использовать Owen Master?
18077

Все, разобрался уже. Подключил трм251 к плк150. Появился другой вопрос: возможно ли программно задавать режим работы трм251 с плк? После завершения программы технолога необходимо вернуть трм в режим работы. Вот попробовал таким образом, но не работает. В чем косяк?18084

slepoy
08.05.2015, 19:30
Если нет переходника - обратиться к любому дилеру, он перешьет.
Мучениями в течении 10 мир проект с Оскаром чудесно собирается.

разобрал плк, прозвонил выход разьема debug к max232, подключил rx, tx к com port , и переустановил прошивку. зачем эти сложности с переходником???

ASo
08.05.2015, 19:33
Еще нужна перемычка для очистки FLASH
А переходник нужен для удобства.

slepoy
08.05.2015, 19:41
Еще нужна перемычка для очистки FLASH
А переходник нужен для удобства.

Все !!! проект залил, всем спасибо.
Странно, в инете нет ни одного ресурса по распиновки этого переходника. пока не разберешь, ни поймешь - все по русски :)

ASo
08.05.2015, 19:48
А зачем, если он идет в комплекте с контроллером?

slepoy
08.05.2015, 19:57
[QUOTE=ASo;170240]А зачем, если он идет в комплекте с контроллером?[/

ну да... это же плк, а не atmega или arm.
глубокие познания железа не нужны :)

energvk
08.05.2015, 23:40
http://www.owen.ru/catalog/kabeli/opisanie
КС-1, вроде же речь об этом кабеле?

slepoy
09.05.2015, 01:25
http://www.owen.ru/catalog/kabeli/opisanie
КС-1, вроде же речь об этом кабеле?

НЕТ. Речь об переходнике для замены прошивки ПЛК (для разьема DBGU) . А кабель КС1 или КС2 , в этом случае пофиг.

slepoy
09.05.2015, 01:29
они оба подойдут. перемычка (в ней отличие между этими кабелями) в этом случае не опрашивается.

capzap
09.05.2015, 06:47
НЕТ. Речь об переходнике для замены прошивки ПЛК (для разьема DBGU) . А кабель КС1 или КС2 , в этом случае пофиг.

так для тех кто не умеет мастерить перемычку разработан же еще один способ, я например им воспользовался и всё получилось

slepoy
09.05.2015, 10:24
так для тех кто не умеет мастерить перемычку разработан же еще один способ, я например им воспользовался и всё получилось

Так я же два дня пытался узнать о способе перепрошивке, не использую переходник (ну нет его у меня). Такого способа ни кто не подсказал...

capzap
09.05.2015, 11:26
Так я же два дня пытался узнать о способе перепрошивке, не использую переходник (ну нет его у меня). Такого способа ни кто не подсказал...

я как бы неиспытываю чувсто вины,что Вы два дня страдали,но есть страничка на сайте www.owen.ru/catalog/codesys_v2/78552813 где предлагается скачать инструкцию по использованию updatecore, сейчас выхожу с телефона,не могу уверенно сказать что это то что надо

slepoy
09.05.2015, 12:28
я как бы неиспытываю чувсто вины,что Вы два дня страдали,но есть страничка на сайте www.owen.ru/catalog/codesys_v2/78552813 где предлагается скачать инструкцию по использованию updatecore, сейчас выхожу с телефона,не могу уверенно сказать что это то что надо

Я ВАС НЕ В ЧЕМ НЕ УПРЕКАЛ, ВЫ ТАКОЙ ЖЕ ПОЛЬЗОВАТЕЛЬ КАК И Я, ПОЧЕМУ ВЫ ДОЛЖНЫ ИСПЫТЫВАТЬ ЧУВСТВО ВИНЫ??? НЕ ПОНИМАЮ САРКАЗМА. Страданий я тоже не испытывал.
Ваша ссылка для обновления программного обеспечения контроллеров ОВЕН ПЛК 100/150/154 с
использованием комаманды UpdateCore. Причем здесь мой ПЛК63.
И если ВЫ обратили внимание , вопрос я задал в теме для новичков.... и не получил простого ответа....

ASo
09.05.2015, 13:30
Вообще говоря, форум для другого.
Проще было написать на support с просьбой выслать схему переходника.
Или прямо попросить её тут. Никто не знает Вашего уровня подготовки.

slepoy
09.05.2015, 13:59
Ааааааа. Ну если для другого то извините. Впредь буду четко формулировать свои вопросы :(

appetitoff
12.05.2015, 10:27
Добрый день! Кто-нибудь управлял ТРМ251 с помощью ПЛК программно по протоколу OWEN?! Интересует момент установки режима работы ТРМ. Например: после завершения программы технолога ТРМ устанавливается в режим работы №3 (Программа технолога завершена), как его сбросить или установить в режим работы №1 программно ? Пробовал по адресу r.St записать необходимое значение, не выходит.

spectrum48k
13.05.2015, 08:25
Подскажите или дайте ссылку на информацию, пожалуйста.
В какой момент времени рантайм ПЛК серии 100/150/154 выполняет отправку буффера при использовании функции SysComWrite() : непосредственно выполняя остановку выполнения задачи или между задачами? Когда после запроса выполнять SysComRead() - сразу после SysComWrite() или в следующем цикле?

appetitoff
13.05.2015, 16:35
Спасибо, разобрался и с MODBUS и с OWEN протоколами. Теперь вот проблема: через протокол ОВЕН программа технолога запускается по сети, а через Модбас не хочет. Почитал форум, пишут, что либо прошивку менять на ТРМ251 либо через OPCserver и скрипты. Кто может что подсказать? Может прошивка есть у кого на ТРМ251 актуальная?!

PAVEL_EKB
15.05.2015, 10:09
Добрый день, подскажите, пожалуйста, как запаролить вход в конфигурационный режим на ПЛК63?

RV9WFJ
16.05.2015, 07:40
Я сделал булеву переменную в конфигураторе, редактирование которой возможно только через пароль. И при ее изменении в TRUE меняю параметр переменных разрешения редактирования, соответственно при сбросе в FALSE или сбросе питания редактирование запрещается.

alek4322
16.05.2015, 21:30
подскажите пожалуйста, как в CFC осуществить остановку таймера TP

kolyan
16.05.2015, 21:59
подскажите пожалуйста, как в CFC осуществить остановку таймера TP

Щёлкаете правой кнопкой мыши по таймеру, левой кнопкой мыши выбираете в выпадающем списке "EN/ENO".
Это разрешение/запрет работы данного таймера (или любого другого ФБ).
Данный вход появляется на входе самого таймера ТР (и на выходе (ENO), но он в данном случае не нужен).
Если EN=TRUE, то таймер работает и наоборот.

Валенок
16.05.2015, 22:13
А является ли "не работа" таймера остановкой ? оutput остается в последнем состоянии

Sergey666
16.05.2015, 22:59
подскажите пожалуйста, как в CFC осуществить остановку таймера TP
Так же как и в ST,LD,и пр - подачей False на вход IN функционального блока .

amn
16.05.2015, 23:23
подскажите пожалуйста, как в CFC осуществить остановку таймера TP

посмотрите по ссылке
http://www.owen.ru/forum/showthread.php?t=12117&p=77428&viewfull=1#post77428

может быть будет полезна эта
http://www.owen.ru/forum/showthread.php?t=15833&p=119816&viewfull=1#post119816

жекон
16.05.2015, 23:25
Так же как и в ST,LD,и пр - подачей False на вход IN функционального блока .
Вообще то не получиться



18188
так что надо разобраться до кого посылка дошла

Sergey666
17.05.2015, 00:21
Вообще то не получиться



18188
так что надо разобраться до кого посылка дошла

Ну да это ж TP , надо еще и PT:=t#0s звиняйте ... Нефиг использовать это TP , BLINK и прочее некорректно останавливаемое ..., хотя в CFC вариантов для маневра маловато

alek4322
17.05.2015, 01:37
не правильно сформулировал вопрос, таймер ТР необходимо остановить то есть поставить на паузу, а после снятия с паузы, нужно чтобы таймер начал отсчёт времени не сначала, а с остановленного времени, если попытаться добавить управляющий вход EN/ENO тогда таймер не сможет запуститься от подачи true на вход IN пака не поступит разрешение на EN, а если попытаться заменить уставку времени на вход РТ на Т#0s, то это приведёт к остановке таймера и при повторном запуске таймера, таймер начнёт отсчёт Т#0s, да и как заменить одну уставку времени на другую они ведь имеют тип данных TIME, а многие распространённые операторы типа И, ИЛИ и т.д. требуют на своих входах тип данных BOOL, а при попытки воспользоваться операторами конверсии ни чего не получается.

amn
17.05.2015, 01:51
Выше я дал ссылки, вторая как раз про паузу. Чтобы заменить уставку можно воспользоваться оператором SEL.

Данис
18.05.2015, 14:54
Пишу на CFC.
Проблема следующая.
Имеется 2 устройства, которые должны работать по очереди - сутки одно, сутки другое.
Очередь сменяется в 12:00 (условно).
Стандартных функциональных блоков "дневной таймер", "недельный таймер" в CoDeSys не нашел.
Как скопировать системное время в какую-либо переменную, чтобы сравнить ее с уставленным временем смены очереди?
Может кто-нибудь участок программы набросает.

Василий Кашуба
18.05.2015, 15:01
Пишу на CFC.
Проблема следующая.
Имеется 2 устройства, которые должны работать по очереди - сутки одно, сутки другое.
Очередь сменяется в 12:00 (условно).
Стандартных функциональных блоков "дневной таймер", "недельный таймер" в CoDeSys не нашел.
Как скопировать системное время в какую-либо переменную, чтобы сравнить ее с уставленным временем смены очереди?
Может кто-нибудь участок программы набросает.
А привязка к времени системы обязательное условие?

Данис
18.05.2015, 15:09
А привязка к времени системы обязательное условие?

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

_Mikhail
18.05.2015, 15:17
В идеале хочется реализовать возможность задания оператором времени смены. Но это уже следующий шаг.
Да данном этапе не получается сделать даже без привязки к времени.

В архиве блоки работы с ременем. Ничего сложного в том что ты описал нет. Все это легко решается

Василий Кашуба
18.05.2015, 15:19
В идеале хочется реализовать возможность задания оператором времени смены. Но это уже следующий шаг.
Да данном этапе не получается сделать даже без привязки к времени.
Посмотрите на эту схему, может она чем то поможет вам. 18193

Эдуард_Н
18.05.2015, 15:42
Пишу на CFC.
Проблема следующая.
Имеется 2 устройства, которые должны работать по очереди - сутки одно, сутки другое.
Очередь сменяется в 12:00 (условно).
Стандартных функциональных блоков "дневной таймер", "недельный таймер" в CoDeSys не нашел.
Как скопировать системное время в какую-либо переменную, чтобы сравнить ее с уставленным временем смены очереди?
Может кто-нибудь участок программы набросает.

Посмотри здесь: http://www.owen.ru/forum/showthread.php?t=10555&page=356&p=158114&viewfull=1#post158114

Данис
19.05.2015, 07:50
Спасибо большое!

PAVEL_EKB
19.05.2015, 13:46
Добрый день, подскажите, пожалуйста можно ли программно считать состояние выхода на ПЛК63, если он работает в режиме ШИМ. Допустим я задал ему мощность 0.25, а как посмотреть включен или выключен выход в данный момент не знаю?

RV9WFJ
20.05.2015, 04:37
Если Вам это по какой-то причине надо, то вы можете программно этот ШИМ и порождать, а не использовать встроенный. Только период ШИМа в этом случае надо согласовывать с временем цикла ПЛК.

schlosser
27.05.2015, 08:48
Добрый день. Столкнулся с такой проблемой. a_p это температурный датчик, подключен у МВ100. 8А. При снижении температуры ниже 0 гр. включаются Pusk1 и A_pusk, так и должно быть. Но у меня проблема в том, что Pusk1 и A_pusk активируются при включении ПЛК и МВ при плюсовой температуре. Подскажите где искать?

Yegor
27.05.2015, 13:20
Добрый день. Столкнулся с такой проблемой. a_p это температурный датчик, подключен у МВ100. 8А. При снижении температуры ниже 0 гр. включаются Pusk1 и A_pusk, так и должно быть. Но у меня проблема в том, что Pusk1 и A_pusk активируются при включении ПЛК и МВ при плюсовой температуре. Подскажите где искать?Сразу после запуска температура с модуля ещё не считана и a_p равняется нулю, что даёт TRUE при сравнении с нулём через LE. Проще всего тут заменить LE на LT.

schlosser
27.05.2015, 13:35
С LT тажа хрень. У меня изначально LT стоял.

Yegor
27.05.2015, 13:44
a_p — какого типа переменная?

schlosser
27.05.2015, 14:08
Переменная REAL. Температуру показывает, всё нормально. При включении Нажимаю на стоп, сбрасываю Pusk1 и a_pusk, потом программа работает как надо. А вот почему при включении они активируются для меня загадка.

schlosser
27.05.2015, 14:13
Я думал про то , что при включении программа начинает работать быстрее чем опрашивается модуль ввода и поэтому показания могут быть со знаком минус. ну вот как это исправить для меня это загадка

Василий Кашуба
27.05.2015, 14:17
Я думал про то , что программа начинает работать быстрее чем опрашивается модуль ввода и поэтому показания могут быть со знаком минус. ну вот как это исправить для меня это загадка
Добавьте в цепочку ещё один ФБ "И", который будет разрешать работу программы по команде "Пуск".

Василий Кашуба
27.05.2015, 14:19
Добавьте в цепочку ещё один ФБ "И", который будет разрешать работу программы по команде "Пуск".
Ставьте его сразу после ФБ "LT".

schlosser
27.05.2015, 14:33
Это система от дурака, если забудут нажать Пуск. Просто несколько раз закатывали продукт в камеру, а включать забывали. утром приходят а он заморожен. Вот и приходиться мудрить.

18365

Василий Кашуба
27.05.2015, 15:08
Это система от дурака, если забудут нажать Пуск. Просто несколько раз закатывали продукт в камеру, а включать забывали. утром приходят а он заморожен. Вот и приходиться мудрить.

18365
Поставьте на дверь камеры концевик. Дверь открыта - запрет, закрыта - разрешение. И поставьте индикацию дверь -Открыта/Закрыта.

schlosser
27.05.2015, 15:13
Это понятно. Но хочется понять почему, и как это устранить

Василий Кашуба
27.05.2015, 15:19
Это понятно. Но хочется понять почему, и как это устранить
Я же вам сказал как устранить. Если в данный момент сравнивать сигналы не нужно - дайте запрет на этот сигнал.

schlosser
27.05.2015, 15:28
Это в данной ситуации можно повесить и концивик, а будет другая где не будет ни окон не дверей.