Страница 1 из 2

Помогите с написанием программы для S7-1200

Добавлено: 30 апр 2013, 14:34
ford7
Написал на форуме iadt.siemens, но кроме ссылок на мануалы и предложения прослушать платные курсы не получил. Может здесь мне помогут... Прошу помочь с написанием, чтобы потом я, уже глядя на нее, мог дальше что-то самостоятельно прикручивать.
Ну например управление освещением- то есть имеем три включателя подключенные напрямую ко входам и 4 лампы, также подключенные непосредственно к релейным выходам (1200dc/dc/rly).
1 включатель для включения/отключения 1 и 2 ламп. 2 включатель для вкл./откл. 3 лампы. 4-я лампа включается по времени с 22-00 до 7-00. 3 включатель для отключения 1-3 ламп.

Re: Помогите с написанием программы для 1200

Добавлено: 30 апр 2013, 18:04
Михайло
Хорошо... Небольшой терминологический экскурс: у нас применяют слово "выключатель". По этому поводу наш начальник САПР всегда прикалывался. Типа у русских все наоборот - у иностранцев "включатель" для того, чтобы включать лампочку, у наших "выключатель" для того, чтобы ее выключать, а как включать - это уже не важно. :)

Давайте дам подсказку наводящими вопросами:
1. Когда каждая лампа включается?
2. Когда каждая лампа отключается?

Пример:
1. Лампа №1 включается, когда включен выключатель №1 AND включен выключатель №3.
2. Лампа №1 отключается, когда отключен выключатель №1 OR выключатель №3.

Это первое приближение к решению задачи - появились уже первые логические функции - это AND и OR. По русски это И и ИЛИ. Также определились с переменными, которые влияют на лампу №1.

Решению удовлетворяет следующее логическое уравнение:
LAMP1 : = SWITCH1 AND SWITCH3

На языке FBD:
AND.gif
Этой первой части кода кода достаточно, чтобы уже управлять лампой LAMP1. Сможешь написать программу в TIA Portal? Или тебе требуется "первый пинок"? :)

Re: Помогите с написанием программы для 1200

Добавлено: 30 апр 2013, 19:43
ford7
с логикой мне все понятно, мне важно применительно к железу это сделать. Как называется функция или блок, который отвечает за часы?
test1.jpg

Re: Помогите с написанием программы для 1200

Добавлено: 30 апр 2013, 19:58
ford7
По включению и отключению- я написал выше, но возможно не внятно. Исправляюсь:
1. Лампы 1 и 2 работают одинаково (как одна лампа). Вкл. и выкл. от выключателя №1 когда выключатель№3 вкл.
2. Когда выключатель№3 выкл., то лампы 1 и 2 выкл. вне зависимости от положения выключателя №1.

Re: Помогите с написанием программы для 1200

Добавлено: 30 апр 2013, 21:15
Михайло
То, что Вам требуется для управления лампой №4, это часы реального времени.

Удивительно, но Вы написали же программу. Не совсем понятно тогда, в каком месте задачи Вы сомневаетесь в решении.

Примечание: In3 - с нормально замкнутым контактом - это так и задумано?

По сути вопроса: ищите и изучайте тип данных DTL и функцию RD_LOC_T из группы Extended instructions/Date and time-of-day.

Re: Помогите с написанием программы для 1200

Добавлено: 30 апр 2013, 21:34
ford7
с in3 так и задумано, это же просто как пример :) можно это сделать на кнопку без фиксации, тогда придется какой-нить триггер ставить. Для меня в программе самое ленивое- это описывать переменные )))
Я не то, чтобы сомневаюсь, я просто хочу видеть примеры использования тех или иных функций. То есть вот нашел я в хелпе RD_LOC_T
test1_hlp.jpg
но примеров-то нет. И мне нужно соображать как это применить, какие временные (возможно) переменные необходимы и тд... А был бы пример- вопросов нет- делай и додумывай...

Re: Помогите с написанием программы для 1200

Добавлено: 30 апр 2013, 22:17
ford7
Не нашел тип DTL.
dtl.jpg
Что я делаю не так?

Re: Помогите с написанием программы для 1200

Добавлено: 01 май 2013, 08:48
Михайло
Из s71200_system_manual_r.pdf
Вы можете определить тип данных DTL во временной памяти блока или в DB.
То есть переменную типа DTL можно объявить только в Temp или в блоке данных (datablock), в PLC Tags его не создать, так как DTL занимает 12 байт и нету такой структуры типа Mx.y, MB, MW, MD, в которую можно было бы запихнуть такой тип данных. Поэтому подходят только такие области памяти, которые не требуют указания занимаемого адресного пространства.

Далее обрати внимание на функцию T_Conv в том же месте, где находится RD_LOC_T.

Также, надеюсь, ты понимаешь, что необходимо обеспечить функцию синхронизации реальных часов ПЛК с глобальным временем... Мало ли время собьется... Один из способов - синхронизация с часами HMI. (А в HMI уже часы легко синхронизируются с глобальным временем в настройках.)

Re: Помогите с написанием программы для 1200

Добавлено: 01 май 2013, 16:03
ford7
Вот гораздо нагляднее разобраться в написанной части программки...

Re: Помогите с написанием программы для 1200

Добавлено: 01 май 2013, 17:14
Михайло
Вроде должно работать:
REAL-TIME.zip
ТИА Портал у меня Basic v11 SP2.

Re: Помогите с написанием программы для S7-1200

Добавлено: 01 май 2013, 17:52
Михайло
Возможно я не совсем удобно написал код. Нужно было тэг "Время_TOD" разделить на 60*60*1000 = 3 600 000 миллисекунд, чтобы получить текущий час.
REAL-TIMEv2.zip

Re: Помогите с написанием программы для S7-1200

Добавлено: 01 май 2013, 21:39
ford7
Большущее человеческое СПАСИБО!
У меня V12 upd1.

Re: Помогите с написанием программы для S7-1200

Добавлено: 02 май 2013, 07:13
ward
да, на форуме сименса тебя помидорами закидали. Пиши, мне вот самому интересно=), сам буду на днях станцию мойки кег делать

Re: Помогите с написанием программы для S7-1200

Добавлено: 02 май 2013, 08:06
Михайло
Хм... Я тут готовлю видеокурс по ТИА Порталу. Сомневаюсь, правда, что он вам пригодится, т.к. он скорее для совсем зеленых.

Re: Помогите с написанием программы для S7-1200

Добавлено: 02 май 2013, 08:29
ford7
Так я и есть зеленый ))))
А что касается помидор, так это вполне для нашей ментальности, поскольку в крови эта особенность ощущения важности... я не заморачиваюсь по этому поводу, ибо знаю, что есть и другие, для которых важнее опытом поделиться, нежели прятать его "по карманам" ;)

Re: Помогите с написанием программы для S7-1200

Добавлено: 02 май 2013, 20:34
ford7
Почему-то местное время равно системному... где копать?
dtl_rd_loc1.jpg
dtl_rd_loc2.jpg

Re: Помогите с написанием программы для S7-1200

Добавлено: 02 май 2013, 20:40
Михайло
18:30 не равно 9:30 и 21:30... Надо думать...

Re: Помогите с написанием программы для S7-1200

Добавлено: 02 май 2013, 21:01
Михайло
Может воспользоваться функцией SET_TIMEZONE? Нужно задать кучу параметров... У меня нет контроллера...

Re: Помогите с написанием программы для S7-1200

Добавлено: 13 янв 2014, 21:49
ford7
"И снова здравствуйте!"
Вот хорошо бы теперь эти кнопки изобразить в веб-интерфейсе, чтобы управлять лампами с компа ;)
Помогите еще раз :[

Re: Помогите с написанием программы для S7-1200

Добавлено: 15 янв 2014, 04:13
Михайло
Ну вот здесь есть базовые знания:
http://www.dmcinfo.com/latest-thinking/ ... pages.aspx