Считывание значение из аналогового входа

Промышленные Логические Контроллеры SIMATIC S7-200/300/400
Post Reply
behemot
Posts: 115
Joined: Wed Jul 28, 2010 9:06 am

Считывание значение из аналогового входа

Post by behemot » Wed Mar 23, 2011 3:08 pm

Подскажите пож-та, не могу сообразить. В HW-Config для аналогового модуля указываю имя канала, допустим ActualTemperature, тип данных WORD. Как преобразовать WORD в знаковый формат, например int?

behemot
Posts: 115
Joined: Wed Jul 28, 2010 9:06 am

Re: Считывание значение из аналогового входа

Post by behemot » Wed Mar 23, 2011 3:16 pm

Нашел, преобразование BCD_I, но в описании пишут, что на входе значение не должно превышать 999.

CoMod
Site Admin
Posts: 3975
Joined: Thu Feb 16, 2006 3:25 pm
Location: Russia
Contact:

Re: Считывание значение из аналогового входа

Post by CoMod » Wed Mar 23, 2011 6:00 pm

В таблице символов указываешь для аналогового входа/выхода значение INT и всё.

behemot
Posts: 115
Joined: Wed Jul 28, 2010 9:06 am

Re: Считывание значение из аналогового входа

Post by behemot » Thu Mar 24, 2011 6:35 am

спасибо, просто раньше делал через преобразования ворда в инт, а теперь не могу найти функцию, удалили её что-ли?

behemot
Posts: 115
Joined: Wed Jul 28, 2010 9:06 am

Re: Считывание значение из аналогового входа

Post by behemot » Fri Mar 25, 2011 10:50 am

Как преобразовать word->int и обратно?

Yury
Posts: 65
Joined: Thu Nov 01, 2007 9:41 pm
Location: Belarus

Re: Считывание значение из аналогового входа

Post by Yury » Fri Mar 25, 2011 11:35 am

Да не недо ничего никуда преобразовывать, типы данных word и int это фактически одно и тоже число в шестнадцатеричной и десятичной системах исчисления, достаточно написать
l mw0 //в символьной таблице описано как word
t mw2 //в символьной таблице описано как int
и это будет достаточное преобразование. Если переменную не описывать в символьной таблице, то вообще ничего писать-преобразовывать не нужно...

Schtiel
Site Admin
Posts: 1121
Joined: Wed Sep 06, 2006 12:03 pm
Location: CIS

Re: Считывание значение из аналогового входа

Post by Schtiel » Fri Mar 25, 2011 11:57 am

behemot wrote:Подскажите пож-та, не могу сообразить. В HW-Config для аналогового модуля указываю имя канала, допустим ActualTemperature, тип данных WORD. Как преобразовать WORD в знаковый формат, например int?
Как уже говорили выше, в таблице символов укажи INT вместо WORD и все:
- Правой кнопкой на модуле в HW Config
- Выбрать Edit Symbols
- В столбце Data Type ввести INT

Image
behemot wrote:Как преобразовать word->int и обратно?
В контроллере и то, и другое - всего лишь 16-битная ячейка, WORD и INT можно рассматривать всего лишь как формат отображения.

behemot
Posts: 115
Joined: Wed Jul 28, 2010 9:06 am

Re: Считывание значение из аналогового входа

Post by behemot » Fri Mar 25, 2011 12:20 pm

Про аналоговый модуль понятно. Если допустить использование переменной типа word, то как её преобразовать в int. Потому, что int<>word. Проверял сам, пытался передать переменную типа word на вход функции SCALE.

Schtiel
Site Admin
Posts: 1121
Joined: Wed Sep 06, 2006 12:03 pm
Location: CIS

Re: Считывание значение из аналогового входа

Post by Schtiel » Fri Mar 25, 2011 12:34 pm

behemot wrote:Если допустить использование переменной типа word, то как её преобразовать в int.
Что мешает изначально объявить переменную как INT (или изменить WORD на INT в таблице символов)? Почему возникла необходимость в таком преобразовании?

Опять-таки, как уже писали выше, можно обычной пересылкой:

Image

MABPIK
Posts: 20
Joined: Fri Mar 26, 2010 7:14 am

Re: Считывание значение из аналогового входа

Post by MABPIK » Fri Mar 25, 2011 2:14 pm

Указать тип данных INT, использовать FC105. (boom)

CHANt
Posts: 501
Joined: Tue Jun 27, 2006 5:52 am
Location: Russia

Re: Считывание значение из аналогового входа

Post by CHANt » Fri Mar 25, 2011 2:20 pm

behemot wrote:Потому, что int<>word. Проверял сам, пытался передать переменную типа word на вход функции SCALE.
Ну извините, если разработчик предусмотрел тип входной переменной как integer, то зачем Вы туда отправляете другой тип переменной. НЕ забывайте что это хоть и библиотечная функция, но не системная. Т.е. сделанная в помощь пользователям.
Формула в хелпе есть, напишите свою SCALE и Вы убедитесь что никакой разницы нет. Первым делом идет преобразование в REAL (ITR), что есть в регистре то система команд и отработает.
Last edited by CHANt on Mon Mar 28, 2011 6:12 am, edited 1 time in total.

behemot
Posts: 115
Joined: Wed Jul 28, 2010 9:06 am

Re: Считывание значение из аналогового входа

Post by behemot » Mon Mar 28, 2011 5:27 am

Спасибо за разжевывание материала. (tyou)

Post Reply