![]() |
![]() ![]() |
|
SMLogix Вопросы о работе в среде SMLogix и о FBD-программировании |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
![]() |
#1 |
Новичок
Регистрация: Feb 2013
Сообщения: 6
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]()
Добрый!
Скажите, как заставить Pixel отсылать информацию с датчиков (например аварии) в modbus, либо какую команду надо отправить Pixel дабы он вернул состояние той или иной аварии. Документация бумажная есть, а вот проект SMLogic - видимо достать не удастся в связи с утерей как заказчиком так и инсталятором. И как я понимаю из pixel вытащить проект не возможно? Для понимания - стоит задача интеграции в единую систему "Умный дом". |
![]() |
![]() |
![]() |
#2 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 357
Благодарил(а): 15 раз(а)
Поблагодарили:
607 раз(а) в 555 сообщениях
|
![]() Это открытые протоколы, описания которых есть в википедии. Спрашивая "как заставить отсылать" или "какую команду отправить чтобы он вернул" - вы затрагиваете этими словами две совершенно разные задачи: работу контроллера как сервера или как клиента. "Заставить отсылать" без исходного проекта точно не получится. "Какую команду отправить" - прямой ответ вы найдёте в описании нужного вам протокола. Но мало отправить команду, на команду-то контроллер хоть что-то, да ответит. Нужно знать что и откуда читать. Это описано в потерянном проекте. Сделайте несколько фотографий информации на дисплее (основной экран, несколько штук меню), вполне вероятно, что там одна из наших стандартных программ. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
#3 |
Новичок
Регистрация: Feb 2013
Сообщения: 6
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]() Да. Работаю по ModBus Почитал про RS485 - всё понятно. Так я понял что теперь осталось понять от куда и что можно прочитать отправив команду на чтение по RS485 в pixel... прикладываю фото pixel + фото одной страницы документации - там как раз меню есть Последний раз редактировалось sysline, 25.02.2013 в 20:10 Причина: вложение |
![]() |
![]() |
![]() |
#4 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 357
Благодарил(а): 15 раз(а)
Поблагодарили:
607 раз(а) в 555 сообщениях
|
![]() Установите себе SMLogix: http://segnetics.com/smlogix Затем Конструктор: http://segnetics.com/smconstructor_hvac И создайте Конструктором абсолютно любой проект для Пикселя. Рядом с файлом проекта вы найдёте ещё два файла: *.map и *.cfg. Первый файл - это текстовое описание переменных, второй - готовый файл конфигурации для Lectus OPC/DDE Server. Велика вероятность, что созданная карта переменных вам подойдёт. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
#5 |
Новичок
Регистрация: Feb 2013
Сообщения: 6
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]() На следующем выезде протестирую. Если будут вопросы с Вашего позволения обращусь ещё раз. В догонку - смогу ли я не только читать, но и записывать по этим адресам свои значение. Например запустить / остановить установку?, или изменить уставку температуры, влажности? Последний раз редактировалось sysline, 27.02.2013 в 01:14 |
![]() |
![]() |
![]() |
#6 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 357
Благодарил(а): 15 раз(а)
Поблагодарили:
607 раз(а) в 555 сообщениях
|
![]() __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
#7 |
Новичок
Регистрация: Feb 2013
Сообщения: 6
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]()
Наконец добрался до 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 mb ![]() 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. Уже всю голову сломал как это соотносится. Или я не из того регистра читаю? |
![]() |
![]() |
![]() |
#8 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 357
Благодарил(а): 15 раз(а)
Поблагодарили:
607 раз(а) в 555 сообщениях
|
![]() __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
#9 |
Новичок
Регистрация: Feb 2013
Сообщения: 6
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]()
Всё получилось. Спасибо!!!
вот на 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 ps: получится ли изменить уставку t при записи в регистр pixel var0=a400#real#SCi_Уставка_t (меня смущает что это разные регистры с var22=a03f#real#SCo_Уставка_t)? и ещё получится ли менять скорость вентилятора (хочется переводить вент установку в экономичный режим, например в ночное время или во время отсутствия хозяев дома)? |
![]() |
![]() |
![]() |
#10 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 357
Благодарил(а): 15 раз(а)
Поблагодарили:
607 раз(а) в 555 сообщениях
|
![]() Первое: Второе: Третье: __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
#11 |
Новичок
Регистрация: Feb 2013
Сообщения: 6
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]()
Извиняюсь за свою не внимательность и спешку.
Первое - исправляюсь не два байта, а два слова. т.е. 4 байта Второе - спасибо что ткнули носом ещё раз. Третье - вот что мне выдаёт стандартный проект в списке переменных для записи: var3=a406#int#SCi_Уставка_tзл var4=a407#int#SCi_Уставка_ВГ var5=a408#int#SCi_Уставка_ВКЛ var6=a409#int#SCi_Уставка_РЗВ если не сложно, расшифруйте их значения. (остальные понятны) |
![]() |
![]() |
![]() |
#12 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 357
Благодарил(а): 15 раз(а)
Поблагодарили:
607 раз(а) в 555 сообщениях
|
![]() При сбое питания Поведение вентустановки при включении питания. «Стоп» / «Авто». • «Стоп» – при включении питания шкафа вентустановка останется в дежурном режиме («Останов») • «Авто» – при включении питания шкафа вентустановка перейдёт в тот режим работы, который был на момент выключения питания «авто» «стоп» «авто» 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 Время года Ручное задание летнего и зимнего режимов: • «Зима» – вентустановка работает в зимнем режиме • «Лето» – вентустановка работает в летнем режиме • «Авто» – автоматический выбор по датчику наружной температуры «зима» «зима» «лето» «авто» __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
#13 |
Новичок
Регистрация: Dec 2017
Сообщения: 1
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]()
Огромное спасибо Sysline за предоставленный код, год назад очень пригодился при запуске!
Вот недавно подвернулся объект где используется 5 контроллеров Pixel и Logic Machine. Решил протестировать профили modbus для Logic Machine, собственно пример профиля для данного контроллера можно скачать на форуме logic machine в ветке Modbus profiles examples там же ссылки на RTU таблицы которые были предоставлены для моей установки... |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Опрос из 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 |