- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Узнать номер месяца
Модератор: Глоб.модераторы
-
- здесь недавно
- Сообщения: 37
- Зарегистрирован: 25 май 2016, 23:44
- Имя: Евсюков Юрий Николаевич
- Благодарил (а): 8 раз
Узнать номер месяца
Здравствуйте. Не подскажете как узнать какой месяц текущий (номер месяца)?
Программа на FBD. Задача такая: нужно из текущей даты вытащить
номер месяца и сохранить его в переменной типа int.
Программа на FBD. Задача такая: нужно из текущей даты вытащить
номер месяца и сохранить его в переменной типа int.
-
- почётный участник форума
- Сообщения: 5793
- Зарегистрирован: 07 окт 2011, 09:12
- Имя: Гаско Вячеслав Эриевич
- Страна: Россия
- город/регион: Рязань
- Благодарил (а): 674 раза
- Поблагодарили: 845 раз
Узнать номер месяца
Если лень считать самому, то открытые библиотечные функции OSCAT Вам в помощь!
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
-
- эксперт
- Сообщения: 1172
- Зарегистрирован: 14 ноя 2013, 20:35
- Имя: Анатолий Сергеевич
- Страна: Россия
- город/регион: Башкортостан
- Благодарил (а): 13 раз
- Поблагодарили: 68 раз
Узнать номер месяца
Конвертируете в bcd, сдвигаете на 8бит, конвертируете в инт...
У шнейдер электрик это делается проще простого, есть системные слова, содержащие текущий год, дату и месяц, день недели, часы и минуты, секунды.
А вот таких слов я в сименсе не встречал, самому интересно узнать на будущее)))
У шнейдер электрик это делается проще простого, есть системные слова, содержащие текущий год, дату и месяц, день недели, часы и минуты, секунды.
А вот таких слов я в сименсе не встречал, самому интересно узнать на будущее)))
-
- освоился
- Сообщения: 233
- Зарегистрирован: 11 апр 2013, 13:22
- Имя: Вишневский Денис
- Благодарил (а): 11 раз
- Поблагодарили: 13 раз
Узнать номер месяца
берем и втыкаем ее к себе в прогу,
у нее есть два выхода - RET (состояние функции - ошибка, норма)
и - Current Date TIME (текущее дата и время), что нам и надо, а далее извлекаем нужный нам байт,
и преобразуем в нужное нам целое, как то так.
у нее есть два выхода - RET (состояние функции - ошибка, норма)
и - Current Date TIME (текущее дата и время), что нам и надо, а далее извлекаем нужный нам байт,
и преобразуем в нужное нам целое, как то так.
"- Знаешь, дружище, в чем истинный смысл второго закона термодинамики?
Как ни упирайся, а бардака все больше. И чем серьезнее ты упираешься, тем страшнее неразбериха."(с)
Как ни упирайся, а бардака все больше. И чем серьезнее ты упираешься, тем страшнее неразбериха."(с)
-
- здесь недавно
- Сообщения: 37
- Зарегистрирован: 25 май 2016, 23:44
- Имя: Евсюков Юрий Николаевич
- Благодарил (а): 8 раз
Узнать номер месяца
Спасибо буду пробоватьmegavolt86 писал(а): Конвертируете в bcd, сдвигаете на 8бит, конвертируете в инт...У шнейдер электрик это делается проще простого, есть системные слова, содержащие текущий год, дату и месяц, день недели, часы и минуты, секунды.А вот таких слов я в сименсе не встречал, самому интересно узнать на будущее)))
-
- здесь недавно
- Сообщения: 37
- Зарегистрирован: 25 май 2016, 23:44
- Имя: Евсюков Юрий Николаевич
- Благодарил (а): 8 раз
-
- здесь недавно
- Сообщения: 37
- Зарегистрирован: 25 май 2016, 23:44
- Имя: Евсюков Юрий Николаевич
- Благодарил (а): 8 раз
Узнать номер месяца
Не подскажете как извлечь нужный байт, ведь переменная размером в 8 байт, а указатель может быть только 4 байта (2-ое слово)? Или есть другой способ?
-
- почётный участник форума
- Сообщения: 5793
- Зарегистрирован: 07 окт 2011, 09:12
- Имя: Гаско Вячеслав Эриевич
- Страна: Россия
- город/регион: Рязань
- Благодарил (а): 674 раза
- Поблагодарили: 845 раз
Узнать номер месяца
Универсальный способ - наложение маски (побитное "И") с последующими сдвигом (целочисленным умножением или делением на степень двойки).
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
-
- освоился
- Сообщения: 233
- Зарегистрирован: 11 апр 2013, 13:22
- Имя: Вишневский Денис
- Благодарил (а): 11 раз
- Поблагодарили: 13 раз
Узнать номер месяца
ну самый глупый способ который лезет в голову - это просто обратится по номеру байта, если данные занимают в дб 7 байт, начиная с нулевого, то логично что адрес DBx.DBB1 - искомый
"- Знаешь, дружище, в чем истинный смысл второго закона термодинамики?
Как ни упирайся, а бардака все больше. И чем серьезнее ты упираешься, тем страшнее неразбериха."(с)
Как ни упирайся, а бардака все больше. И чем серьезнее ты упираешься, тем страшнее неразбериха."(с)
-
- здесь недавно
- Сообщения: 5
- Зарегистрирован: 29 авг 2016, 09:43
- Имя: Дьяков С.
- Страна: Россия
- Поблагодарили: 1 раз
Узнать номер месяца
Я думаю от седо можно будет вытащить!
Инструкции по настройке системных часов с SFC0 (SET_CLK)
1. Вы определяете временную переменную типа данных DATE_AND_TIME, "writeDateAndTime", например, и загрузить адрес этой переменной в регистр адреса AR1 , используя команду " LAR1 P ## writeDateAndTime " (рис. 3). Загрузка и передача данных в отдельных байт за год, месяц, день, час и т.д. осуществляется с помощью косвенной адресации.
2. Пример для передачи час должен быть установлен "Write" .Hour (здесь DB2.DBB3) в байт 3 (час) во временной переменной "writeDateAndTime":
L "Написать" .Hour
T B [AR1, P # 3.0]
3. Из - за перекрытия в байтах 6 и 7 для миллисекунд и дня недели, до передачи значения , которое будет установлено в течение миллисекунд вы должны переместить содержимое операнда (здесь "Написать" .Millisecond, DB2.DBW6) 4 бита влево ( SLW 4 ).
4. Вам не нужно, чтобы установить день недели, потому что это происходит от установленной даты.
Рисунок. 3
5. Вызов системной функции SFC0 (SET_CLK) для установки системных часов и обеспечивают входной параметр "PDT" с переменной "writeDateAndTime" временного (рис. 4). Важно, что SFC0 вызывается только для одного одиночного цикла, в противном случае система синхронизации будет установлен снова в каждом цикле и, следовательно, будет оставаться на заданное время.
6. В примере (рис. 4) операнд "Write" .setCLK (здесь DB2.DBX8.0) проверяется на наличие положительного фронта. В случае положительного лезвию SFC0 называется и система синхронизации установлено значение значений, указанных во временной переменной "writeDateAndTime".
Рисунок. 4
Инструкции по настройке системных часов с SFC0 (SET_CLK)
1. Вы определяете временную переменную типа данных DATE_AND_TIME, "writeDateAndTime", например, и загрузить адрес этой переменной в регистр адреса AR1 , используя команду " LAR1 P ## writeDateAndTime " (рис. 3). Загрузка и передача данных в отдельных байт за год, месяц, день, час и т.д. осуществляется с помощью косвенной адресации.
2. Пример для передачи час должен быть установлен "Write" .Hour (здесь DB2.DBB3) в байт 3 (час) во временной переменной "writeDateAndTime":
L "Написать" .Hour
T B [AR1, P # 3.0]
3. Из - за перекрытия в байтах 6 и 7 для миллисекунд и дня недели, до передачи значения , которое будет установлено в течение миллисекунд вы должны переместить содержимое операнда (здесь "Написать" .Millisecond, DB2.DBW6) 4 бита влево ( SLW 4 ).
4. Вам не нужно, чтобы установить день недели, потому что это происходит от установленной даты.
Рисунок. 3
5. Вызов системной функции SFC0 (SET_CLK) для установки системных часов и обеспечивают входной параметр "PDT" с переменной "writeDateAndTime" временного (рис. 4). Важно, что SFC0 вызывается только для одного одиночного цикла, в противном случае система синхронизации будет установлен снова в каждом цикле и, следовательно, будет оставаться на заданное время.
6. В примере (рис. 4) операнд "Write" .setCLK (здесь DB2.DBX8.0) проверяется на наличие положительного фронта. В случае положительного лезвию SFC0 называется и система синхронизации установлено значение значений, указанных во временной переменной "writeDateAndTime".
Рисунок. 4
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- здесь недавно
- Сообщения: 5
- Зарегистрирован: 29 авг 2016, 09:43
- Имя: Дьяков С.
- Страна: Россия
- Поблагодарили: 1 раз
Узнать номер месяца
Извините за плохое качество изображений...
У вас нет необходимых прав для просмотра вложений в этом сообщении.