Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Автор Тема: Языки программирования контроллеров  (Прочитано 14123 раз)

lecsa

  • Новичок
  • *
  • Сообщений: 22
    • Просмотр профиля
С разрешения админов, начал новую тему по самостоятельному изучению языков программирования контроллеров.
Так как я в языках полный ноль то приходится делать первые шаги.
 Если у кого возникнет желание помочь то я думаю будет очень здорово.
Если еще будут желающие то буду только рад.
« Изменён: 26 Января 2017, 12:02:11 от Simple_Scada »

lecsa

  • Новичок
  • *
  • Сообщений: 22
    • Просмотр профиля
Re: Языки программирования
« Ответ #1 : 26 Января 2017, 12:15:22 »
Продолжу. Имею ПЛК73М от Овена. Кодесис 2.3, таргет 2.16. Термопару (К). токовые выходы 4...20мА, релейные. Также подъедит 3х ходовой клапан с управлением 4..20мА

Скажу сразу, использовать только ПЛК, ТРМ и другие регуляторы не учитываются, т.к ПЛК у нас валяются 10 штук. И начальство хочет только ПИД!

 Подвигло меня на изучение, опытное задание на работе, да и давно хотел постичь минимум с работой ПЛК (непосредственно написать код)
 Задача.
Есть термопласт автомат. У него имеется пресс-форма и гидравлическое управление ( остальное упускаю ). Для этого нужно охлаждение (циркуляция воды с заданной температурой).
  Пресс-форма должна иметь минимальную температуру, которую может производить холодильник (5-6 гр), так же в момент остановки, пресс-форма должна охлаждаться повышенной температурой (20-25 гр) для того чтоб не образовывался конденсат на ней).

 Гидравлика. Гидравлическое масло, да и вообще система, любит постоянную температуру. У нас это 48 гр.

 Теперь сама задача.
Нужно создать 2 ПИД регулятора,  вывод температуры на ЖКИ каждого из каналов, уставки рабочей температуры, уставку при остановки работы пресс-формы. Ну при полете мысли еще чем нибудь дополнить, типа аварии по холодильнику.
« Изменён: 26 Января 2017, 12:20:42 от lecsa »

lecsa

  • Новичок
  • *
  • Сообщений: 22
    • Просмотр профиля
Re: Языки программирования контроллеров
« Ответ #2 : 26 Января 2017, 14:14:40 »
Изучать простые операции желания не возникло, взял трепать сразу ПИД на языке CFC

 CFC относительно понятный язык, особо если если раньше программировали ПР (программированное реле).
В кодесис добавил библиотеку с пидом, сконфигурировал задействованые входа и выходы,  прикрутил на глаз уставки ПИД, вывел тренд и тд. Вообщем ФБ "ПИД" заработал в симуляторе.
 
 Хотел выложить фото скина но что то не нашел как это сделать. :(

Andrey1883

  • Пользователь
  • **
  • Сообщений: 74
    • Просмотр профиля
Re: Языки программирования контроллеров
« Ответ #3 : 26 Января 2017, 14:31:42 »
Хотел выложить фото скина но что то не нашел как это сделать. :(

Можно, например, через вот этот хостинг

lecsa

  • Новичок
  • *
  • Сообщений: 22
    • Просмотр профиля
Re: Языки программирования контроллеров
« Ответ #4 : 26 Января 2017, 20:14:07 »
Ну попробую вставить.


Ну и сам проект, для тех кто хочет сам поиграться https://yadi.sk/d/660A3nFk3B5vGR
« Изменён: 26 Января 2017, 20:27:03 от lecsa »

Teodor

  • Старожил
  • ****
  • Сообщений: 256
    • Просмотр профиля
Re: Языки программирования контроллеров
« Ответ #5 : 10 Февраля 2017, 01:18:12 »
Может я и старый, но мне на ST в codesys все что сложнее простого писать значительно удобнее...

Типа контроля систем отопления и ГВС котельни... Мой любимый паравоз: 60AI(4-20ма), 64AI(pt1000), 28АО(0-10), 176DI, 48DO,  2хRS485(12х2 насоса), 2xETH(каплер, скада, плк1(чилера), плк3(котлы), плк4(счетчики)). :)

lecsa

  • Новичок
  • *
  • Сообщений: 22
    • Просмотр профиля
Re: Языки программирования контроллеров
« Ответ #6 : 12 Февраля 2017, 18:42:00 »
Приветствую, т.е вы ST знаете?
  Я как начинающий только пытаюсь в нем разобраться.
У меня получилось написать на ST (тело) +CFC (пид), с выводом на ЖКИ и регулировкой уставки на ЖКИ.
Хотел реализовать "аварии" на CFC но блок как то некорректно срабатывал. Пока дальше копаю
 Я согласен  Вами что ST намного универсальней, его надо только понять.
Если что, то можно Вам задать вопросы?

Teodor

  • Старожил
  • ****
  • Сообщений: 256
    • Просмотр профиля
Re: Языки программирования контроллеров
« Ответ #7 : 13 Февраля 2017, 17:31:08 »
Приветствую, т.е вы ST знаете?
  Я как начинающий только пытаюсь в нем разобраться.
У меня получилось написать на ST (тело) +CFC (пид), с выводом на ЖКИ и регулировкой уставки на ЖКИ.
Хотел реализовать "аварии" на CFC но блок как то некорректно срабатывал. Пока дальше копаю
 Я согласен  Вами что ST намного универсальней, его надо только понять.
Если что, то можно Вам задать вопросы?
Та да, можна, но отвечать буду по факту наличия времени... ST - по сути тот-же паскаль, что и эта скада. Ну и это... Я в 2.3 версии зависаю, т.к. мои контроллеры 3-ей не понимают :)
В кодесисе ГЛАВНОЕ разобраться с необходимой структурой данных и понять что такое FB и как оно работает. Например блок "Таймер" (TON) стоит прописывать НЕ в программах (var Timer:TON;), а сразу в глобальной структуре:
TYPE aaa:
STRUCT
   Timer1   : TON:=(PT:=t#5s);
   ....
END_STRUCT
END_TYPE
далее его надо где-то в последней программе вызвать: ааа.Timer1();

В будущем, ежели нам этот ФБ будет нужен, то достаточно дать старт aaa.Timer1.IN:=true и проверить исполнение aaa.Timer1.Q

Что не так с авариями и как они должны вообще срабатывать?
« Изменён: 13 Февраля 2017, 18:00:22 от Teodor »

lecsa

  • Новичок
  • *
  • Сообщений: 22
    • Просмотр профиля
Re: Языки программирования контроллеров
« Ответ #8 : 13 Февраля 2017, 21:59:38 »
Спасибо большое за ответ, конечно я понимаю формат "наличие времени", я то же изучаю ST при наличии времени :).  Среда кодесис2.3., 3ю даже и не ставил. 15 февраля буду на работе, выложу свою непонятку с блоком ошибки.

a_sergeevich

  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: Языки программирования контроллеров
« Ответ #9 : 14 Февраля 2017, 08:03:07 »
Подключайтесь https://www.youtube.com/channel/UCxT0ngJYg3YvQzVy_zElTrw/videos как раз канал по обучению программирования ПЛК.

lecsa

  • Новичок
  • *
  • Сообщений: 22
    • Просмотр профиля
Re: Языки программирования контроллеров
« Ответ #10 : 14 Февраля 2017, 14:00:28 »
Спасибо, на днях я уже скачал всю пачку  :) Смотрел первые несколько серий, пока там на CFC, хотелось бы более на ST.

lecsa

  • Новичок
  • *
  • Сообщений: 22
    • Просмотр профиля
Re: Языки программирования контроллеров
« Ответ #11 : 16 Февраля 2017, 17:24:16 »
Приветствую .
Возникла проблема, сижу туплю.
Пид регулятор, переменная sp1(*уставка*) - глобальная и прописана в SubMenu конфигураторе ПЛК.
Вспомнил что все же нужно ее сделать RETAIN, что операторам меньше работы было.
Теперь капец. Ошибка 3703 (два раза объявлено).
Может надо эту переменную сделать VAR_OUT sp1 RETAIN и в конфигураторе ПЛК обозвать так же sp1?

Еще вопрос, как находить переменные с 2м объявлением?
Пролез по локальным, по глобальным, двух индификаторов не встретил . Как вы их ищите?

TOPans

  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: Языки программирования контроллеров
« Ответ #12 : 16 Февраля 2017, 20:13:00 »
Приветствую .
Возникла проблема, сижу туплю.
Пид регулятор, переменная sp1(*уставка*) - глобальная и прописана в SubMenu конфигураторе ПЛК.
Вспомнил что все же нужно ее сделать RETAIN, что операторам меньше работы было.
Теперь капец. Ошибка 3703 (два раза объявлено).
Может надо эту переменную сделать VAR_OUT sp1 RETAIN и в конфигураторе ПЛК обозвать так же sp1?

Еще вопрос, как находить переменные с 2м объявлением?
Пролез по локальным, по глобальным, двух индификаторов не встретил . Как вы их ищите?

Один из вариантов поиска Проект->Глобальный поиск, выбираете всё и жмёте ОК, ищите что нужно будет поиск по всему проекту.

Переменная уставка в SubMenu какой тип имеет оперативный или конфигурационный? Чтобы сохранялось в конфигураторе нужен тип Конфигурационный.  Как часто меняется уставка оператором и откуда? Из меню конфигурации или из рабочего режима?

Teodor

  • Старожил
  • ****
  • Сообщений: 256
    • Просмотр профиля
Re: Языки программирования контроллеров
« Ответ #13 : 16 Февраля 2017, 20:56:45 »
Мде... Я конфигуратором вообще не пользуюсь (кроме входов-виходов и иногда модбас)...

просто на закладке "глобал-вариейбл":

VAR_GLOBAL RETAIN PERSISTENT
  SomeSruct : typeSomeStruct;
END_VAR

Teodor

  • Старожил
  • ****
  • Сообщений: 256
    • Просмотр профиля
Re: Языки программирования контроллеров
« Ответ #14 : 16 Февраля 2017, 21:05:37 »
Приветствую .
Возникла проблема, сижу туплю.
Пид регулятор, переменная sp1(*уставка*) - глобальная и прописана в SubMenu конфигураторе ПЛК.
Вспомнил что все же нужно ее сделать RETAIN, что операторам меньше работы было.
Теперь капец. Ошибка 3703 (два раза объявлено).
Может надо эту переменную сделать VAR_OUT sp1 RETAIN и в конфигураторе ПЛК обозвать так же sp1?
Это не наш метод, но когда все плохо, то можна присваивать значение ретейн переменной в нужную переменную в начале проги. А ежели вдруг значение измениось, то в обратную сторону в ее конце.

Про указатели пока не буду, там для новичка все еще хужее :)

И, это... А нельзя вместо sp1 просто вписать название нужной переменной из ретейна?