PDA

Просмотр полной версии : Как воспользоваться временем СПК



alek4322
07.06.2015, 15:54
Здравствуйте, пишу программу в CFC, возникла необходимость производить какие либо действия по расписанию, например в 6:00 гудеть в барабан, я вижу это так, нужно (выдернуть) отсчёт времени из энергонезависимых часов и сопоставить их значение с заранее подготовленной переменной уставки по времени, например оператором сравнения = , после этого производить какое либо действие, вопрос, как это сделать? или подскажите хотя бы, с чего начать, в какую книгу или пример смотреть, программу пишу на CFC. Заранее благодарен за помощь.:(

Евгений Кислов
07.06.2015, 16:22
Здравствуйте, пишу программу в CFC, возникла необходимость производить какие либо действия по расписанию, например в 6:00 гудеть в барабан, я вижу это так, нужно (выдернуть) отсчёт времени из энергонезависимых часов и сопоставить их значение с заранее подготовленной переменной уставки по времени, например оператором сравнения = , после этого производить какое либо действие, вопрос, как это сделать? или подскажите хотя бы, с чего начать, в какую книгу или пример смотреть, программу пишу на CFC. Заранее благодарен за помощь.:(

Надеюсь, это вам поможет:
http://www.owen.ru/forum/showthread.php?t=20069&page=24&p=168798&viewfull=1#post168798

дрю
29.06.2015, 10:58
18805Прошу Прошения, но обясните пожалуста , как выделить минуты и часы, я все сделал, как5 в римере , но дальше как двигаться не знаю

Евгений Кислов
29.06.2015, 11:24
18805Прошу Прошения, но обясните пожалуста , как выделить минуты и часы, я все сделал, как5 в римере , но дальше как двигаться не знаю

Используйте функцию DTSplit из той же библиотеки:

18806

18807

18808

дрю
29.06.2015, 14:26
Все сделал, все работает, БОЛЬШОЕ спасибо!! Может чуть чуть поясните по синтаксису? Вот справка и хелпника:
ADR возвращает адрес аргумента в формате DWORD. Полученный адрес может быть передан функции в качестве аргумента или присвоен переменной типа указатель.
и пример на ST: dwVar:=ADR(bVAR);
bVAR какого типа переменная и как она взаимодействует с оператором ADR?

Евгений Кислов
29.06.2015, 14:58
Все сделал, все работает, БОЛЬШОЕ спасибо!! Может чуть чуть поясните по синтаксису? Вот справка и хелпника:
ADR возвращает адрес аргумента в формате DWORD. Полученный адрес может быть передан функции в качестве аргумента или присвоен переменной типа указатель.
и пример на ST: dwVar:=ADR(bVAR);
bVAR какого типа переменная и как она взаимодействует с оператором ADR?

bVar, очевидно, типа BOOL, но в контексте примера это вообще не имеет значения.

Разбивка системного времени в данной библиотеке реализована через функцию, а функция, как известно, возвращает только одно значение.

Поэтому запись значений разрядов времени в отдельные переменные реализуется через указатели. Для этого на вход функции подаются адреса этих переменных (адреса их ячеек памяти). Более подробно можно почитать, например, здесь:
http://www.owen.ru/forum/showthread.php?t=15455&p=125066&viewfull=1#post125066

ну и в справке CODESYS есть глава про указатели.

дрю
29.06.2015, 16:30
Благодарю за развернутый ответ, буду разбираться.

Эдуард_Н
29.06.2015, 16:45
Здравствуйте, пишу программу в CFC, возникла необходимость производить какие либо действия по расписанию, например в 6:00 гудеть в барабан, я вижу это так, нужно (выдернуть) отсчёт времени из энергонезависимых часов и сопоставить их значение с заранее подготовленной переменной уставки по времени, например оператором сравнения = , после этого производить какое либо действие, вопрос, как это сделать? или подскажите хотя бы, с чего начать, в какую книгу или пример смотреть, программу пишу на CFC. Заранее благодарен за помощь.:(

А вот это Вам не подойдёт? http://www.owen.ru/forum/showthread.php?t=10555&page=356&p=158114&viewfull=1#post158114