Просмотр полной версии : Посоветуйте что почитать, чтобы научиться программировать
Добрый день!
Прошу помочь, подсказать какую литературы или может форумы почитать, чтобы научиться нормально программировать устройства.
Сейчас делаю в своем доме электрику на базе ПР102. Сделал освещение - с помощью Макроса ON_OFF сделал кнопки, подключил датчики движения - свет работает, все прекрасно. Теперь приобрел ПЕ210, подключил к Интернету, настроил OwenCloud- все так же работает, даже Алисе команды выдаю.
Но никак не могу понять как составить элементарную программу, чтобы управлять тем же светом и с кнопки, и дистанционно (OwenCloud или Алиса). Понимаю, что нужна сетевая переменная, но не пойму как этой переменной управлять - например свет выключен, нажимаю на кнопку - свет включается. Но отключить этот свет можно только этой же кнопкой. Если же свет выключен, включаю переменной удаленно, то выключить можно только переменной.
Я немного понимаю в программировании, работал с php, в Excel могу составить сложные, многоуровневые формулы с разными функциями. Но в вопросе программирования ПР102 - поднимаю белый флаг.
Надеюсь на помощь.
За ранее премного благодарен.
Используйте функции "ИЛИ" и подайте на входа сигнал с кнопки (входа) и с сетевой переменной (предварительно сделав преобразование int >bool
Добрый вечер.
Спасибо. Делал следующим образом:
Добавил блок ИЛИ, подсоединил выход к лампе. На 1 вход ИЛИ подключил кнопку через макрос ON_OFF, на второй сетевую переменную. Когда нажимаю на кнопку, свет включается, но выключить его можно только кнопкой. Меняя значение переменной с 0 на 1и потом с 1 на 0 свет не выключается, так как на одном из входов ИЛИ постоянная 1 от кнопки 😔
Используйте функции "ИЛИ" и подайте на входа сигнал с кнопки (входа) и с сетевой переменной (предварительно сделав преобразование int >bool
Спасибо большое за «рыбку». Но хотелось бы «удочку», чтобы иметь возможность самому решать задачи.
Eugene.A
19.12.2020, 19:33
Тогда начните с булевой алгебры, таблиц истинности и диаграмм состояний.
имхо, этому обучить, давая советы на форуме, невозможно.
Можно конечно посоветовать что то прочитать, или посмотреть... я к примеру пересмотрел практически все с ютуба, много читал форум и тд. но у меня был ранее опыт работы с обычной корпусной логикой. а пэхэпэ и ексели тут бесполезны
На примере вопроса автора темы, логично вспомнить принцип (к примеру) самого банального проходного выключателя и попытаться его смоделить в ОЛ...
52577
Вам нужны макросы из базы lChange чтобы связать сетевую и внутреннюю переменную, чтобы управлялось и по сети и по внутренней логике ПР, раз она следит за клавишами.
С буквой М на конце это сетевая, без - внутренняя.
Добрый вечер.
Спасибо. Делал следующим образом:
Добавил блок ИЛИ, подсоединил выход к лампе. На 1 вход ИЛИ подключил кнопку через макрос ON_OFF, на второй сетевую переменную. Когда нажимаю на кнопку, свет включается, но выключить его можно только кнопкой. Меняя значение переменной с 0 на 1и потом с 1 на 0 свет не выключается, так как на одном из входов ИЛИ постоянная 1 от кнопки
Сетевые переменные сохраняют свое значение . Допустим у вас где то HMI , на ней кнопка . Нажали -1 ,отпустили-0 .Также и кнопка на входе . Вы наверное в симуляторе проверяете? Зачем вам макрос , что в нем ? Макросов тысяча , опишите этот или скрин дайте.
имхо, этому обучить, давая советы на форуме, невозможно.
Можно конечно посоветовать что то прочитать, или посмотреть... я к примеру пересмотрел практически все с ютуба, много читал форум и тд. но у меня был ранее опыт работы с обычной корпусной логикой. а пэхэпэ и ексели тут бесполезны
На примере вопроса автора темы, логично вспомнить принцип (к примеру) самого банального проходного выключателя и попытаться его смоделить в ОЛ...
52577
Это сложный пример для новичка
имхо, этому обучить, давая советы на форуме, невозможно.
Можно конечно посоветовать что то прочитать, или посмотреть... я к примеру пересмотрел практически все с ютуба, много читал форум и тд. но у меня был ранее опыт работы с обычной корпусной логикой. а пэхэпэ и ексели тут бесполезны
На примере вопроса автора темы, логично вспомнить принцип (к примеру) самого банального проходного выключателя и попытаться его смоделить в ОЛ...
52577
Юрий, спасибо. Я понял - надо развивать фантазию и логику!
Спасибо большое за «рыбку». Но хотелось бы «удочку», чтобы иметь возможность самому решать задачи.
Для начала не используйте макросы(тем более чужие) ,делайте сами (без макросов) , тогда перед глазами схема ,так нагляднее .
Школьники делают проекты , а вы если электронщик ,то освоите за час азы.ПР именно для таких как вы.
Сетевые переменные сохраняют свое значение . Допустим у вас где то HMI , на ней кнопка . Нажали -1 ,отпустили-0 .Также и кнопка на входе . Вы наверное в симуляторе проверяете? Зачем вам макрос , что в нем ? Макросов тысяча , опишите этот или скрин дайте.
Макрос нужен, чтобы симулировать кнопку с фиксацией. Сделал освещение на кнопках без фиксации. =/
Попробовал вариант предложенный melky - правда нашел только SelChange - логика понятна, но не пойму как задать значение переменной Th_onn - так как получается, что переменные задаются и принимают значения в результате работы макроса
Для начала не используйте макросы(тем более чужие) ,делайте сами (без макросов) , тогда перед глазами схема ,так нагляднее .
Школьники делают проекты , а вы если электронщик ,то освоите за час азы.ПР именно для таких как вы.
К сожалению, я не электронщик =(
макросы из базы lChange
Не нашел такого в базе.
OAS1606 это он и есть. суть на входах локальная и сетевая, на выходе они общие. Изменение любой, приводит к изменению другой.
Названия ваши и поставить в правильном месте. Макрос для этого и служит - управлению из двух мест.
В базе они SelChgI и SelChgF для целочисленных и флоата, я пользуюсь старыми макросами, еще когда их не добавили в базу...
В базе они SelChgI и SelChgF для целочисленных и флоата,
Нашел... :)
Сетевая, это та, которую вы придумали для облака. Локальная, которая включает и выключает свет от кнопки
Сетевая, это та, которую вы придумали для облака. Локальная, которая включает и выключает свет от кнопки
Спасибо. Чувствую, что это решение. Только не пойму - значение локальной переменной задается самим макросом. Если пытаюсь задать ещё и физической кнопкой, то OL ругается и говорит, что переменная уже используется. По сетевой переменной вопрос нет.
У вас сигнал физической кнопки, точнее уже управления on_off должно пройти через макрос SelChgI а с выхода этого макроса уже управление устройством, то есть on_off1 например а дальше в схему, где раньше было on_off
мы же не видим вашей программы, чтобы понять куда
У вас сигнал физической кнопки, точнее уже управления on_off должно пройти через макрос SelChgI а с выхода этого макроса уже управление устройством, то есть on_off1 например а дальше в схему, где раньше было on_off
мы же не видим вашей программы, чтобы понять куда
Спасибо огромное! Заработало!
52581
Не нашел такого в базе.
Если хотите научится - ЗАБУДЬТЕ НА ВРЕМЯ МАКРОСЫ . Сначала нужно выучить алфавит , а потом писать слова,предложения . "Заработало" - это не цель ,вы же сказали про обучение... Уверен ,что вы смотрите на два квадратика (макроса) и не понимаете полностью как работает схема .
Вот мой вариант с кнопкой и сетевой переменной .При нажатии на любою меняет свое значение на выходе . Постарайтесь понять как это работает и прочитайте назначение элементов и ФБ.
Eugene.A
19.12.2020, 22:55
Боюсь, что D триггер тот же макрос, и понять его работу без учебника всё равно не получится. Та же рыба вместо удочки.
rovki вы только запутаете человека. Понятно, что надо изучать как работают FB, но это есть в справке, копку F1 никто не отменял.
При этом вы даете не рабочее решение, забывая, что переменные должны измениться а не только изменять.
А то человек будет смотреть в облако, там включено, а по факту - выключено и наоборот.
Господа, спасибо всем за помощь. Я согласен с rovki, что нужно изучать основы программирования. Сейчас я на том этапе, когда у меня есть цифры, знаки +, -, *, : и =, а я не понимаю, что с этим надо сделать, в какой последовательности... Но когда несколько дней бьешься над задачей и не можешь решить - мотивация падает. Но теперь, благодаря всем - она снова появилась!
rovki вы только запутаете человека. Понятно, что надо изучать как работают FB, но это есть в справке, копку F1 никто не отменял.
При этом вы даете не рабочее решение, забывая, что переменные должны измениться а не только изменять.
А то человек будет смотреть в облако, там включено, а по факту - выключено и наоборот.
Про облако я пропустил .
А в остальном только так ! Поверьте ,работал с детьми ,давал основы цифровой техники .
Если уж об алфавите, чой то никто не вспомнил что xor это функция управляемой самоинверсии
Прилепил 4 кнопки. Собсно если еще что-то по сети, то сначала решить - на что реагируем. А дальше то же самое.
Задача ставилась не проше ,а понятнее . c XOR не так очевидно для новичка ,тем более с задержкой на такт..
Eugene.A
20.12.2020, 00:04
Та же задержка на такт. D от слова delay.
человек не знает один из 4х базовых буль-кирпичей ? Тогда не афавит а кукольки/мафынки
x = f(c, x), где с - управление инверсией x
c = TRUE (разрешаем инверсию) - на выходе not x
c = FALSE (не разрешаем инверсию) - на выходе x
и что это за f ?
x := c xor x
а "задержка на такт" это местная прилепуха. В КДС.CFC просто лепится без непонятных слов "задержка на такт"
Для меня эти д-тригеры это какая-то сложная "не атомарная" дичь
Согласен ,но для электронщиков это базовый элемент , а коль он работает с ПР ,то самое то. Для ТС - соединение инверсного выхода D-триггера на D вход ,делает его T-триггером ( счетный триггер) .
Зачем текстом (атомарной дичью на английском языке) в теме про ПР подчивать?
Та же задержка на такт. D от слова delay.
Ну какие delay в ОЛ , зачем учить сразу два языка ,с одним бы разобраться
Eugene.A
20.12.2020, 13:27
При чем тут ОЛ и языки? Я написал про D триггер.
Так это одна из сутей xor'а. И ..
А как в применении к ПР - показал выше.
Кто же спорит..только суть можно выразить на разных языках ,есть таблица истинности ,например
Ревака Юрий
21.12.2020, 10:16
Добрый день!
Прошу помочь, подсказать какую литературы или может форумы почитать, чтобы научиться нормально программировать устройства.
Сейчас делаю в своем доме электрику на базе ПР102. Сделал освещение - с помощью Макроса ON_OFF сделал кнопки, подключил датчики движения - свет работает, все прекрасно. Теперь приобрел ПЕ210, подключил к Интернету, настроил OwenCloud- все так же работает, даже Алисе команды выдаю.
Но никак не могу понять как составить элементарную программу, чтобы управлять тем же светом и с кнопки, и дистанционно (OwenCloud или Алиса). Понимаю, что нужна сетевая переменная, но не пойму как этой переменной управлять - например свет выключен, нажимаю на кнопку - свет включается. Но отключить этот свет можно только этой же кнопкой. Если же свет выключен, включаю переменной удаленно, то выключить можно только переменной.
Я немного понимаю в программировании, работал с php, в Excel могу составить сложные, многоуровневые формулы с разными функциями. Но в вопросе программирования ПР102 - поднимаю белый флаг.
Надеюсь на помощь.
За ранее премного благодарен.
По управлению освещением, посмотрите вот эти видео, там как раз с примерами все описано:
https://www.youtube.com/watch?v=kE0sobkGYLA
а вот тут как раз есть вариант управления из 3 мест, остается только все совместить:
https://www.youtube.com/watch?v=alT2Oi_fFho
Добрый вечер коллеги. Где то на диске ( если не стер ) была книга по ОЛ. Писал один из участников форума. Во времена ПР110. Там с основ. ДУмаю будет актуальна и сейчас. Как хороший учебник для начинающих. Как найду выложу здесь. Модераторы можно будет сделать отдельную для начинающих. Нашел. Вот несколько ПДФ.
Добрый вечер коллеги. Где то на диске ( если не стер ) была книга по ОЛ. Писал один из участников форума. .
как бы Вы сейчас не выложили коммерческий продукт написанный не участником, а представителем ОВЕН
Вы бы для начала написали ему, можно ли выкладывать
Этот курс гулял уже очень давно и выкладывался много раз, в том числе и на форуме.
Я и скачал с этого форума.
Kondor416
22.12.2020, 19:55
как бы Вы сейчас не выложили коммерческий продукт написанный не участником, а представителем ОВЕН
Вы бы для начала написали ему, можно ли выкладывать
Поздно, я уже скачал)
как бы Вы сейчас не выложили коммерческий продукт написанный не участником, а представителем ОВЕН
Вы бы для начала написали ему, можно ли выкладывать
Спасибо за это замечание) Впрочем, автору все равно не допишешься, он очень редко сюда возвращается. А учебник этот действительно давно в свободном плавании по интернету. Так что, если его удобно будет найти здесь и использовать - это тоже хорошо.
А за уточнение все равно спасибо!
Приветствую!
Подскажите
А как связать Алису и owencloud?!
Добрый день!
Прошу помочь, подсказать какую литературы или может форумы почитать, чтобы научиться нормально программировать устройства.
Сейчас делаю в своем доме электрику на базе ПР102. Сделал освещение - с помощью Макроса ON_OFF сделал кнопки, подключил датчики движения - свет работает, все прекрасно. Теперь приобрел ПЕ210, подключил к Интернету, настроил OwenCloud- все так же работает, даже Алисе команды выдаю.
Но никак не могу понять как составить элементарную программу, чтобы управлять тем же светом и с кнопки, и дистанционно (OwenCloud или Алиса). Понимаю, что нужна сетевая переменная, но не пойму как этой переменной управлять - например свет выключен, нажимаю на кнопку - свет включается. Но отключить этот свет можно только этой же кнопкой. Если же свет выключен, включаю переменной удаленно, то выключить можно только переменной.
Я немного понимаю в программировании, работал с php, в Excel могу составить сложные, многоуровневые формулы с разными функциями. Но в вопросе программирования ПР102 - поднимаю белый флаг.
Надеюсь на помощь.
За ранее премного благодарен.
Приветствую
А как связать Алису и owencloud?!
Я не знаю как это точно сделать. Но ПР понимает управление по сети. По-сути дела нужна "прокладка " между Алисой и ПР. Варианты.
1) софт. Что за софт я не знаю так как невладах с эти делом.
2) железо. Тут проще. Есть розетки и выключатели с кем Алиса дружит. Нужно знание схемотехники, навыки пайки, прямые руки . Берём выключатель. Открываем. Находим силовой ключ который по указке Алисы подает силу на выход. И эту силу заводим на вход ПР. Потом элемент ИЛИ. Один вход от Алисы другой от кнопки. Выход элемента ИЛИ на вход макроса ON-OFF. Выход макроса "он-офф" на выход ПР. Ну а дальше уже силовая коммутация через промежуточное реле.
Что бы не тянуть кучу проводов. Проще все выключатели собрать рядом с ПР. А в комнатах где Алиса будет " Рулить" вашим светом поставить простые кнопочные выключатели без фиксации. Соединив их с ПР простым кабеле 2*0.75(передаем сигнал управления на ПР). Аналогично можно сделать и "розетки" для чайника. Хотя если им нет воды то пожаром попахивает. Я бы сделал примерно так если бы мне нужно было бы подружить Алису с ПР.
Если Алису можно подружить со SCADA, например есть какой-то API то можно и с ПР работать.
Точно знаю, что подружить можно через iobrocker насколько я знаю. Знакомый при помощи Алисы открывает ворота двора, роллету гаража, а они как раз прикручены к ПР200. А вот на счет Овен облака не подскажу, но если все делалось через API, то смотрите как в вышеназванной связке сделано, возможно найдете там решение.
Приветствую
А как связать Алису и owencloud?!
ну собственно как и в названии темы, почитать документацию https://yandex.ru/dev/dialogs/ и https://cloud.yandex.ru/docs/functions/
в общих чертах нужна учетная запись на яндексе, знать API owencloud и терпение, пока навык будет модерироваться
мой код выглядит так
from random import randint
import requests
import json
import os
class ApiClient:
def __init__(self, base_address):
self.base_address = base_address
def post(self, path="/", params=None, data=None, json=None, headers=None):
url = f"{self.base_address}{path}"
return requests.post(url=url, params=params, data=data, json=json, headers=headers)
def ol_api():
return ApiClient(base_address="https://api.owencloud.ru/")
def last_data(ol_api, token, unit):
headers = { 'Authorization' : 'Bearer ' + token }
data = "{\"ids\":["+unit+"]}" #
response = ol_api.post("v1/parameters/last-data",headers=headers,data=data)
unit = response.json()
refer = unit[0]["values"]
return refer[0]["v"]
def get_response(name="Чего изволите?\nМожно посмотреть значение температуры или уставки"):
return {
"version": "1.0",
"response": {
'text': name
},
"end_session": "false"
}
dict_ = {1:'Запрос не понятен',2:'Ответа нет',3:'Сформулируйте вопрос, помощь наше всё'}
def handler(event, context):
response = ''
if 'request' in event and event['request']['command'] == '':
response = get_response()
elif 'request' in event and 'nlu' in event['request']:
name = dict_[randint(1,3)]
for unit in event['request']['nlu']['tokens']:
unit = unit.lower()
if 'температур' in unit:
name = "Температура: "+last_data(ol_api(), os.environ.get('SEC_TOK'), '4337438')
elif 'уставк' in unit:
name = "Уставка: "+last_data(ol_api(), os.environ.get('SEC_TOK'), '4337428')
elif 'помощь' in unit:
name = "Запрос может звучать как: покажи температу или покажи уставку"
elif 'умеешь' in unit:
name = "Цель навыка обеспечить информацией о текущем состоянии объекта ГВС. Отобразить по запросу текущую температуру или уставку температуры, которой надо придерживаться"
response = get_response(name)
return response
сам навык после трех дней модерации здесь (https://alice.ya.ru/s/9ba96fd3-3cbb-46c6-9acf-9770b72abf62)
os.environ.get('SEC_TOK') это токен из овеновского облака, сохраненный в переменной окружения среды выполнения навыка
это самый простой вариант, есть и более предпочтительные
LynxTier
16.04.2021, 13:17
Посмотри на этом сайте книги по языкам программирования, может быть что то и найдешь для себя https://litrec.net
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot