Segnetics

Вернуться   Segnetics > Форум Segnetics > SMLogix

SMLogix Вопросы о работе в среде SMLogix и о FBD-программировании

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.02.2013, 14:22   #1
sysline
Новичок
 
Регистрация: Feb 2013
Сообщения: 6
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Pixel - Modbus - Комп

Добрый!
Скажите, как заставить Pixel отсылать информацию с датчиков (например аварии) в modbus, либо какую команду надо отправить Pixel дабы он вернул состояние той или иной аварии.
Документация бумажная есть, а вот проект SMLogic - видимо достать не удастся в связи с утерей как заказчиком так и инсталятором. И как я понимаю из pixel вытащить проект не возможно?

Для понимания - стоит задача интеграции в единую систему "Умный дом".
sysline вне форума   Ответить с цитированием
Старый 25.02.2013, 17:05   #2
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 016
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Pixel - Modbus - Комп

Цитата
Сообщение от sysline Посмотреть сообщение
Добрый!
Скажите, как заставить Pixel отсылать информацию с датчиков (например аварии) в modbus, либо какую команду надо отправить Pixel дабы он вернул состояние той или иной аварии.
Документация бумажная есть, а вот проект SMLogic - видимо достать не удастся в связи с утерей как заказчиком так и инсталятором. И как я понимаю из pixel вытащить проект не возможно?

Для понимания - стоит задача интеграции в единую систему "Умный дом".
Протокол, с которым работают контроллеры Pixel, называется Modbus. Если вы используете порт RS485, то это Modbus-RTU, если вы используете разъём Ethernet, то это Modbus-TCP.

Это открытые протоколы, описания которых есть в википедии.

Спрашивая "как заставить отсылать" или "какую команду отправить чтобы он вернул" - вы затрагиваете этими словами две совершенно разные задачи: работу контроллера как сервера или как клиента.

"Заставить отсылать" без исходного проекта точно не получится.

"Какую команду отправить" - прямой ответ вы найдёте в описании нужного вам протокола. Но мало отправить команду, на команду-то контроллер хоть что-то, да ответит. Нужно знать что и откуда читать. Это описано в потерянном проекте.

Сделайте несколько фотографий информации на дисплее (основной экран, несколько штук меню), вполне вероятно, что там одна из наших стандартных программ.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 25.02.2013, 20:07   #3
sysline
Новичок
 
Регистрация: Feb 2013
Сообщения: 6
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Pixel - Modbus - Комп

Цитата:
Сообщение от Arsie Посмотреть сообщение
Сделайте несколько фотографий информации на дисплее (основной экран, несколько штук меню), вполне вероятно, что там одна из наших стандартных программ.
Спасибо за быстрый и развёрнутый ответ!
Да. Работаю по ModBus
Почитал про RS485 - всё понятно.
Так я понял что теперь осталось понять от куда и что можно прочитать отправив команду на чтение по RS485 в pixel...
прикладываю фото pixel
+ фото одной страницы документации - там как раз меню есть
Миниатюры
Нажмите на картинку для увеличения

Название:  P1060741.jpg
Просмотров: 663
Размер:  186.0 Кбайт   Нажмите на картинку для увеличения

Название:  ВентДок (12).jpg
Просмотров: 892
Размер:  439.5 Кбайт  

Последний раз редактировалось sysline, 25.02.2013 в 20:10 Причина: вложение
sysline вне форума   Ответить с цитированием
Старый 26.02.2013, 10:53   #4
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 016
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Pixel - Modbus - Комп

Цитата
Сообщение от sysline Посмотреть сообщение
Спасибо за быстрый и развёрнутый ответ!
Да. Работаю по ModBus
Почитал про RS485 - всё понятно.
Так я понял что теперь осталось понять от куда и что можно прочитать отправив команду на чтение по RS485 в pixel...
прикладываю фото pixel
+ фото одной страницы документации - там как раз меню есть
Этот кусок меню похож на программу Конструктора.

Установите себе SMLogix: http://segnetics.com/smlogix

Затем Конструктор: http://segnetics.com/smconstructor_hvac

И создайте Конструктором абсолютно любой проект для Пикселя. Рядом с файлом проекта вы найдёте ещё два файла: *.map и *.cfg. Первый файл - это текстовое описание переменных, второй - готовый файл конфигурации для Lectus OPC/DDE Server.

Велика вероятность, что созданная карта переменных вам подойдёт.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 27.02.2013, 00:53   #5
sysline
Новичок
 
Регистрация: Feb 2013
Сообщения: 6
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Pixel - Modbus - Комп

Цитата:
Сообщение от Arsie Посмотреть сообщение
Этот кусок меню похож на программу Конструктора.
Всё сделал. Спасибо просто огромное!
На следующем выезде протестирую.
Если будут вопросы с Вашего позволения обращусь ещё раз.

В догонку - смогу ли я не только читать, но и записывать по этим адресам свои значение.
Например запустить / остановить установку?, или изменить уставку температуры, влажности?

Последний раз редактировалось sysline, 27.02.2013 в 01:14
sysline вне форума   Ответить с цитированием
Старый 27.02.2013, 11:05   #6
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 016
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Pixel - Modbus - Комп

Цитата
Сообщение от sysline Посмотреть сообщение
Если будут вопросы с Вашего позволения обращусь ещё раз.
Советую вам в следующий раз требовать исполнительную документацию с подрядчиков и/или поставщиков.



Цитата
Сообщение от sysline Посмотреть сообщение
В догонку - смогу ли я не только читать, но и записывать по этим адресам свои значение.
Например запустить / остановить установку?, или изменить уставку температуры, влажности?
SCi_ - для записи, SCo_ - для чтения.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 16.03.2013, 22:26   #7
sysline
Новичок
 
Регистрация: Feb 2013
Сообщения: 6
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Pixel - Modbus - Комп

Наконец добрался до pixel на объекте.
Ещё раз хочу сказать спасибо. Получилось соединиться с pixel по ModBus из LM2 микроконтроллер умного дома.
Работает так: (скрипт на LUA для LM2 вдруг кому пригодится)

function Pixel_Read()
-- инициализируем Modbus при первом запуске скрипта
if not mb then
require('luamodbus')
mb = luamodbus.rtu()
--9600 baud rate, None parity, 8 data bits, 2 stop bit, half duplex
mbpen('/dev/ttyS2', 9600, 'N', 8, 2, 'H')
mb:connect()
end
-- устанавливаем slave адрес для чтения и записи данных
mb:setslave(2)
r1 = mb:readregisters(0x3800, 1) --Зима/Лето
end

Удается даже запустить / остановить вент.установку записью в регистры
var0=3c00#bool#SCi_Дист/Мест
var2=3c02#bool#SCi_Пуск
var3=3c03#bool#SCi_Стоп

Остался вопрос который никак не могу решить.
Если я хочу считать текущую уставку t
я считываю по этому адресу 4 байта:
var22=a03f#real#SCo_Уставка_t
получаю h 00 00 41 A0
в меню pixel стоит уставка t = 20. Уже всю голову сломал как это соотносится. Или я не из того регистра читаю?
sysline вне форума   Ответить с цитированием
Старый 17.03.2013, 05:05   #8
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 016
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Pixel - Modbus - Комп

Цитата
Сообщение от sysline Посмотреть сообщение
Остался вопрос который никак не могу решить.
Если я хочу считать текущую уставку t
я считываю по этому адресу 4 байта:
var22=a03f#real#SCo_Уставка_t
получаю h 00 00 41 A0
в меню pixel стоит уставка t = 20. Уже всю голову сломал как это соотносится. Или я не из того регистра читаю?
Это вещественный четырёхбайтовый тип.

Формат хранения числа описан в IEEE-754.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 18.03.2013, 00:29   #9
sysline
Новичок
 
Регистрация: Feb 2013
Сообщения: 6
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Pixel - Modbus - Комп

Всё получилось. Спасибо!!!
вот на LUA скрипты для преобразования real в два байта и обратно:
Код:
function PackIEEE754(number)  -- преобразование обычного числа в Real-pixel ( два байта i1-по адресу, i2-следующий)
    local b1, b2, b3, b4
    local i1,i2
    if number == 0 then
        return 0,0
    elseif number ~= number then
        return 0xFFFF, 0xFFFF
    else
        local sign = 0x00
        if number < 0 then
            sign = 0x80
            number = -number
        end
        local mantissa, exponent = math.frexp(number)
        exponent = exponent + 0x7F
        if exponent <= 0 then
            mantissa = math.ldexp(mantissa, exponent - 1)
            exponent = 0
        elseif exponent > 0 then
            if exponent >= 0xFF then
                return string.char(sign + 0x7F, 0x80, 0x00, 0x00)
            elseif exponent == 1 then
                exponent = 0
            else
                mantissa = mantissa * 2 - 1
                exponent = exponent - 1
            end
        end
        mantissa = math.floor(math.ldexp(mantissa, 23) + 0.5)
	b1=sign + math.floor(exponent / 2)
        b2=(exponent % 2) * 0x80 + math.floor(mantissa / 0x10000)
        b3=math.floor(mantissa / 0x100) % 0x100
        b4=mantissa % 0x100

        i2 = b1 * 256 + b2       
        i1 = b3 * 256 + b4       
        return i1,i2 
    end
end

print(PackIEEE754(20)) -- напечатает 0	16800


function UnpackIEEE754(i1,i2) -- преобразование Real-pixel( два байта i1-по адресу, i2-следующий) в число
    local b1, b2, b3, b4
    b1 = math.floor(i2 / 256)
    b2 =  i2 - b1*256
    b3 = math.floor(i1 / 256)
    b4 =  i1 - b3*256
    local exponent = (b1 % 0x80) * 0x02 + math.floor(b2 / 0x80)
    local mantissa = math.ldexp(((b2 % 0x80) * 0x100 + b3) * 0x100 + b4, -23)
    if exponent == 0xFF then
        if mantissa > 0 then
            return 0 / 0
        else
            mantissa = math.huge
            exponent = 0x7F
        end
    elseif exponent > 0 then
        mantissa = mantissa + 1
    else
        exponent = exponent + 1
    end
    if b1 >= 0x80 then
        mantissa = -mantissa
    end
    return math.ldexp(mantissa, exponent - 0x7F)
end

print(UnpackIEEE754(0,16800)) --напечатает 20
скрипты можно тестировать на http://www.lua.org/cgi-bin/demo

ps: получится ли изменить уставку t при записи в регистр pixel var0=a400#real#SCi_Уставка_t (меня смущает что это разные регистры с var22=a03f#real#SCo_Уставка_t)?
и ещё получится ли менять скорость вентилятора (хочется переводить вент установку в экономичный режим, например в ночное время или во время отсутствия хозяев дома)?
sysline вне форума   Ответить с цитированием
Старый 18.03.2013, 10:52   #10
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 016
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Pixel - Modbus - Комп

Цитата
Сообщение от sysline Посмотреть сообщение
Всё получилось. Спасибо!!!
Будьте внимательны к переписке!


Первое:

Цитата
Сообщение от sysline Посмотреть сообщение
вот на LUA скрипты для преобразования real в два байта и обратно:
Цитата:
Сообщение от Arsie Посмотреть сообщение
Это вещественный четырёхбайтовый тип.

Второе:

Цитата
Сообщение от sysline Посмотреть сообщение
ps: получится ли изменить уставку t при записи в регистр pixel var0=a400#real#SCi_Уставка_t (меня смущает что это разные регистры с var22=a03f#real#SCo_Уставка_t)?
Цитата:
Сообщение от Arsie Посмотреть сообщение
SCi_ - для записи, SCo_ - для чтения.

Третье:

Цитата
Сообщение от sysline Посмотреть сообщение
и ещё получится ли менять скорость вентилятора (хочется переводить вент установку в экономичный режим, например в ночное время или во время отсутствия хозяев дома)?
Вы не поверите, но у меня попросту нет информации, чтобы ответить на этот вопрос.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 19.03.2013, 00:21   #11
sysline
Новичок
 
Регистрация: Feb 2013
Сообщения: 6
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Pixel - Modbus - Комп

Извиняюсь за свою не внимательность и спешку.
Первое - исправляюсь не два байта, а два слова. т.е. 4 байта
Второе - спасибо что ткнули носом ещё раз.
Третье - вот что мне выдаёт стандартный проект в списке переменных для записи:
var3=a406#int#SCi_Уставка_tзл
var4=a407#int#SCi_Уставка_ВГ
var5=a408#int#SCi_Уставка_ВКЛ
var6=a409#int#SCi_Уставка_РЗВ
если не сложно, расшифруйте их значения. (остальные понятны)
sysline вне форума   Ответить с цитированием
Старый 19.03.2013, 10:48   #12
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 016
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Pixel - Modbus - Комп

Цитата
Сообщение от sysline Посмотреть сообщение
var3=a406#int#SCi_Уставка_tзл
var4=a407#int#SCi_Уставка_ВГ
var5=a408#int#SCi_Уставка_ВКЛ
var6=a409#int#SCi_Уставка_РЗВ
1.7

При сбое питания

Поведение вентустановки при включении питания. «Стоп» / «Авто».

• «Стоп» – при включении питания шкафа вентустановка останется в дежурном режиме («Останов»)
• «Авто» – при включении питания шкафа вентустановка перейдёт в тот режим работы, который был на момент выключения питания

«авто»

«стоп» «авто»

1.8

Резервир. вентилятора

Настройка функции резервирования приточного вентилятора.
• «1» – работает только первый вентилятор, резервирование отключено
• «2» – работает только второй вентилятор, резервирование отключено
• «1>2» – первый вентилятор является основным, при отказе автоматически запускается второй вентилятор
• «2>1» – второй вентилятор является основным, при отказе автоматически запускается первый вентилятор

«1>2»

«1» «2» «1>2» «2>1»

1.9

Переход зима/лето °С

Температура переключения летнего и зимнего режимов. Переключение осуществляется с учётом гистерезиса (пункт 2.12.1 меню)

5

-60…60

1.10

Время года

Ручное задание летнего и зимнего режимов:
• «Зима» – вентустановка работает в зимнем режиме
• «Лето» – вентустановка работает в летнем режиме
• «Авто» – автоматический выбор по датчику наружной температуры

«зима»

«зима» «лето» «авто»


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 21.12.2017, 19:14   #13
icontsystems
Новичок
 
Регистрация: Dec 2017
Сообщения: 1
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Pixel - Modbus - Комп

Огромное спасибо Sysline за предоставленный код, год назад очень пригодился при запуске!

Вот недавно подвернулся объект где используется 5 контроллеров Pixel и Logic Machine.
Решил протестировать профили modbus для Logic Machine, собственно пример профиля для данного контроллера можно скачать на форуме logic machine в ветке Modbus profiles examples

там же ссылки на RTU таблицы которые были предоставлены для моей установки...
icontsystems вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать свои сообщения

BB code is Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Опрос из Pixel контроллера Carel c.pCO по Modbus TCP kps Связь с внешним миром 12 09.07.2022 19:33
Получение данных от Pixel по Modbus ngs Связь с внешним миром 5 30.08.2016 15:04
связи по Modbus с Pixel Tyr0 Форум Segnetics 1 14.04.2016 11:29
Обратная свзязь: Pixel - ModBus - Комп Wool Вопросы о программировании 35 03.04.2013 11:53
одновременный ModBus и LON на PIXEL lau Вопросы о Pixel 12 12.03.2008 14:40


Часовой пояс GMT +4, время: 12:09.


Версия vBulletin: 3.8.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2023