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

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

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

Post by behemot »

Подскажите пож-та, не могу сообразить. В HW-Config для аналогового модуля указываю имя канала, допустим ActualTemperature, тип данных WORD. Как преобразовать WORD в знаковый формат, например int?
behemot
Posts: 115
Joined: Wed Jul 28, 2010 9:06 am

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

Post by behemot »

Нашел, преобразование BCD_I, но в описании пишут, что на входе значение не должно превышать 999.
CoMod
Site Admin
Posts: 3992
Joined: Thu Feb 16, 2006 3:25 pm
Location: Russia

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

Post by CoMod »

В таблице символов указываешь для аналогового входа/выхода значение INT и всё.
behemot
Posts: 115
Joined: Wed Jul 28, 2010 9:06 am

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

Post by behemot »

спасибо, просто раньше делал через преобразования ворда в инт, а теперь не могу найти функцию, удалили её что-ли?
behemot
Posts: 115
Joined: Wed Jul 28, 2010 9:06 am

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

Post by behemot »

Как преобразовать word->int и обратно?
Yury
Posts: 65
Joined: Thu Nov 01, 2007 9:41 pm
Location: Belarus

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

Post by Yury »

Да не недо ничего никуда преобразовывать, типы данных word и int это фактически одно и тоже число в шестнадцатеричной и десятичной системах исчисления, достаточно написать
l mw0 //в символьной таблице описано как word
t mw2 //в символьной таблице описано как int
и это будет достаточное преобразование. Если переменную не описывать в символьной таблице, то вообще ничего писать-преобразовывать не нужно...
Schtiel
Site Admin
Posts: 1122
Joined: Wed Sep 06, 2006 12:03 pm
Location: CIS

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

Post by Schtiel »

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 »

Про аналоговый модуль понятно. Если допустить использование переменной типа word, то как её преобразовать в int. Потому, что int<>word. Проверял сам, пытался передать переменную типа word на вход функции SCALE.
Schtiel
Site Admin
Posts: 1122
Joined: Wed Sep 06, 2006 12:03 pm
Location: CIS

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

Post by Schtiel »

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

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

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

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

Post by MABPIK »

Указать тип данных INT, использовать FC105. (boom)
CHANt
Posts: 501
Joined: Tue Jun 27, 2006 5:52 am
Location: Russia

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

Post by CHANt »

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 »

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