|
  |
Modicon M171, Свободно программируемые контроллеры для HVAC |
|
|
|
28.8.2020, 5:51
|
Группа: Участники форума
Сообщений: 71
Регистрация: 5.2.2016
Пользователь №: 289254

|
Цитата(kubekaiv @ 27.8.2020, 15:16)  Добрый день. Спасибо за консультации, со всем самостоятельно разобрался с учетом всех ваших рекомендаций. Программа работает, все отлично!! Остался последний вопрос. Как запретить доступ к программе для скачивания ее с устройства другими лицами. Спасибо!!! Как я помню, программу через ESME-HVAC не выгрузить. Можно лишь скачать её скомпилированную, через встроенный фтп сервер. И этот сервер можно отключить после загрузки программы.
|
|
|
|
|
28.8.2020, 13:38
|
Группа: Участники форума
Сообщений: 23
Регистрация: 6.8.2020
Пользователь №: 380312

|
Цитата(kubekaiv @ 27.8.2020, 13:16)  Добрый день. Спасибо за консультации, со всем самостоятельно разобрался с учетом всех ваших рекомендаций. Программа работает, все отлично!! Остался последний вопрос. Как запретить доступ к программе для скачивания ее с устройства другими лицами. Спасибо!!! Кто нибудь подскажет? Это в принципе можно сделать? Цитата(Andrey N. @ 28.8.2020, 5:51)  Как я помню, программу через ESME-HVAC не выгрузить. Можно лишь скачать её скомпилированную, через встроенный фтп сервер. И этот сервер можно отключить после загрузки программы. Ага, понятно, а как его отключить? И еще, как поставить пароль на изменение параметров с дисплея Спасибо!!!
|
|
|
|
|
28.8.2020, 14:11
|
Группа: New
Сообщений: 2
Регистрация: 23.4.2020
Пользователь №: 376127

|
Здравствуйте. Есть следующая конфигурация: m172P48I/O(master) - m172P48I/O(slave) - atv650(slave) - atv650(slave). Общаются по Modbus RTU. master конфигурация 38400, E, 8, 1. slave-ы сконфигурированы как generic Modbus device с параметрами для каждой функции polling time 1000, timeout 3000, wait before send 10. По совету выше попытался мониторить соединение и исключать ноды из опроса по флагу sysMbMRtuNodeStatus[CurrentNode].miss MbSReLink_Timer (IN := (SupMiss and sysMbMRtuNodePresence [1]), PT := 5000); // исключение нода из опроса по имп. ошибки на время таймера sysMbMRtuNodePresence [1] := NOT (SupMiss and MbSReLink_Timer.Q); / мониторинг состояния нодов CurrentNode := sysMbMRtuNodeAct; case CurrentNode of 1: SupMiss := sysMbMRtuNodeStatus[CurrentNode].miss; .. end_case; и с таймером и без по флагу ..miss получил кардиоиду на Осцилоскопе: изменение состояния флага по каждому slave-у с рваной частотой < 10сек. Прошу помочь в стабилизации связи.
|
|
|
|
|
28.8.2020, 14:55
|
Группа: New
Сообщений: 2
Регистрация: 23.4.2020
Пользователь №: 376127

|
Картинка к предыдущему посту. Мониторинг ..miss двух нодов.
Безымянный.jpg ( 255,58 килобайт )
Кол-во скачиваний: 26
|
|
|
|
|
21.9.2020, 11:19
|
Группа: Участники форума
Сообщений: 24
Регистрация: 23.3.2017
Пользователь №: 318016

|
Цитата(freefire78 @ 31.7.2020, 11:18)  После перезагрузки контроллера происходит запись всех сохраненных EEPROM с нулевыми значениями. Хотя вроде написано, что есть защита от записи... Здравствуйте. Возвращаясь к этой теме. Прикрепил проект. Может кто-то поможет разобраться почему обнуляются переменные. Ссылка на проект
Сообщение отредактировал freefire78 - 21.9.2020, 11:22
|
|
|
|
|
21.9.2020, 23:12
|
Группа: Участники форума
Сообщений: 3050
Регистрация: 30.9.2010
Из: Иркутск
Пользователь №: 74376

|
Цитата(ogorsv @ 4.2.2020, 23:58)  Сергей Медведев создал в этой теме папку на BOX, там много интересного. Скажем, https://schneider-electric.app.box.com/s/cp...der/70414675002[attachment=140685:Eliwell.jpg] А чем это скачивать? Я не могу три дня браузер открытым держать. Да и если интернет моргнёт, то пипец, всё сначала.
Сообщение отредактировал kosmos440o - 21.9.2020, 23:14
|
|
|
|
|
22.9.2020, 6:03
|
Группа: Участники форума
Сообщений: 71
Регистрация: 5.2.2016
Пользователь №: 289254

|
Цитата(freefire78 @ 21.9.2020, 13:19)  Здравствуйте. Возвращаясь к этой теме. Прикрепил проект. Может кто-то поможет разобраться почему обнуляются переменные. Ссылка на проектНу так у вас в программе sEEprom происходит запись в епром переменные. Вы записываете в них переменные из этой программы, которые хранятся в оперативной памяти. Вполне естественно, что при перезагрузке контроллера эти переменные обнуляются, и сразу же происходит их запись в епром. Вообще EEPROM Par лучше использовать как уставки и различные параметры, которыми вы можете управлять только через дисплей или через внешнюю диспетчеризацию. Через программу в них записывать нужно только в том случае, если необходимо хранить какие-то важные, собранные в процессе эксплуатации системы, данные. И даже в этом случае делать какую-то выборку, чтобы слишком часто не перезаписывать епром.
|
|
|
|
|
22.9.2020, 21:07
|
Группа: Участники форума
Сообщений: 24
Регистрация: 23.3.2017
Пользователь №: 318016

|
Цитата(Andrey N. @ 22.9.2020, 7:03)  Ну так у вас в программе sEEprom происходит запись в епром переменные. Вы записываете в них переменные из этой программы, которые хранятся в оперативной памяти. Вполне естественно, что при перезагрузке контроллера эти переменные обнуляются, и сразу же происходит их запись в епром. Вообще EEPROM Par лучше использовать как уставки и различные параметры, которыми вы можете управлять только через дисплей или через внешнюю диспетчеризацию. Через программу в них записывать нужно только в том случае, если необходимо хранить какие-то важные, собранные в процессе эксплуатации системы, данные. И даже в этом случае делать какую-то выборку, чтобы слишком часто не перезаписывать епром. Я вообще так и собирался. Просто надо маштабировать задаваемые значения для LG. Их контроллеру надо все на 10 умножить. Вот я эти значения со скады и беру, маштабирую и потом записываю в епром. В этом месте программы, я так понимаю все и сбрасывается при перезагрузке. Не могу придумать, как сделать по другому.
Сообщение отредактировал freefire78 - 22.9.2020, 21:20
|
|
|
|
|
23.9.2020, 6:52
|
Группа: Участники форума
Сообщений: 71
Регистрация: 5.2.2016
Пользователь №: 289254

|
Цитата(freefire78 @ 22.9.2020, 23:07)  Я вообще так и собирался. Просто надо маштабировать задаваемые значения для LG. Их контроллеру надо все на 10 умножить. Вот я эти значения со скады и беру, маштабирую и потом записываю в епром. В этом месте программы, я так понимаю все и сбрасывается при перезагрузке. Не могу придумать, как сделать по другому. Я не уверен, что правильно понял, что вам нужно сделать. Если необходимо записывать значения с Modicon через Modbus в другой контроллер, то на экране Modicon можно настроить отображение значений с точкой, и тогда условные 215 будут отображаться на экране как 21.5. Но при этом в программе они будут оставаться умноженными на 10. Если же надо что-то со скады записывать через модикон в другой контроллер, то обычно на скаде также можно сделать отображение с точкой.
|
|
|
|
|
23.9.2020, 16:27
|
Группа: Участники форума
Сообщений: 24
Регистрация: 23.3.2017
Пользователь №: 318016

|
Я извиняюсь, ввел в заблуждение. Вчерашняя смена сказалась. Я со скады, к примеру, беру два параметра: минимальную и максимальную скорость вентилятора. Эти параметры записываются в епром из скады. Но после перезагрузки 172 контроллера эти параметры сбрасываются. Кроме как со скады эти параметры нигде не используются. Эти же параметры записываются записываются из HMI в ячейки епром на прямую. На фото этот кусок кода.
Сообщение отредактировал freefire78 - 23.9.2020, 16:22
Прикрепленные файлы
EEPROM.jpg ( 354,12 килобайт )
Кол-во скачиваний: 30
|
|
|
|
|
24.9.2020, 8:02
|
Группа: Участники форума
Сообщений: 71
Регистрация: 5.2.2016
Пользователь №: 289254

|
Цитата(freefire78 @ 23.9.2020, 18:27)  Я извиняюсь, ввел в заблуждение. Вчерашняя смена сказалась. Я со скады, к примеру, беру два параметра: минимальную и максимальную скорость вентилятора. Эти параметры записываются в епром из скады. Но после перезагрузки 172 контроллера эти параметры сбрасываются. Кроме как со скады эти параметры нигде не используются. Эти же параметры записываются записываются из HMI в ячейки епром на прямую.
На фото этот кусок кода. То есть у вас скада выступает как Slave, а модикон как Master? В таком случае нужно писать подпрограмму, которая будет сравнивать значения в еепром со значением в скаде, и в случае различия перезаписывать. То есть нужно будет использовать 4 переменные для каждого параметра: епром значение, старое значение в епром (чтобы отслеживать изменение с HMI), значение из скады (считанное по модбас), старое значение из скады (хранящееся в контроллере в оперативной памяти). Вот пример кода, тут я ещё делаю преобразование времени для использования в расписании, но суть не меняется. CODE (* В этой программе сравнивается значение, пришедшее по Modbus со значением в EEprom *) (* В качестве промежуточного значения используются переменные с окончанием _Old *)
(* Выполняем преобразования для дальнейшего сравнения *) Hour_Start := Mon_Start / 60; Minute_Start := Mon_Start - (Hour_Start * 60); Mon_Start_Modbus := (Mon_Start_Hour * 60) + Mon_Start_Min;
Hour_End := Mon_End / 60; Minute_End := Mon_End - (Hour_End * 60); Mon_End_Modbus := (Mon_End_Hour * 60) + Mon_End_Min;
(* Данная часть записывает значения _Start из EEprom в Modbus при выполнении условий *) IF Mon_Start <> Mon_Start_Old AND Mon_Start_Modbus <> Mon_Start_Old THEN Mon_Start_Hour := Hour_Start; Mon_Start_Min := Minute_Start; Mon_Start_Old := Mon_Start; ELSIF Mon_Start <> Mon_Start_Old AND Mon_Start_Modbus = Mon_Start_Old THEN Mon_Start_Hour := Hour_Start; Mon_Start_Min := Minute_Start; Mon_Start_Old := Mon_Start; END_IF;
(* Данная часть записывает значения _Start из Modbus в EEprom при выполнении условий *) IF Mon_Start = Mon_Start_Old AND Mon_Start_Modbus <> Mon_Start_Old THEN bret := SysWriteParInt(ADR(Mon_Start), Mon_Start_Modbus); END_IF;
IF Mon_Start = Mon_Start_Modbus THEN Mon_Start_Old := Mon_Start; END_IF;
(* Данная часть записывает значения _End из EEprom в Modbus при выполнении условий *) IF Mon_End <> Mon_End_Old AND Mon_End_Modbus <> Mon_End_Old THEN Mon_End_Hour := Hour_End; Mon_End_Min := Minute_End; Mon_End_Old := Mon_End; ELSIF Mon_End <> Mon_End_Old AND Mon_End_Modbus = Mon_End_Old THEN Mon_End_Hour := Hour_End; Mon_End_Min := Minute_End; Mon_End_Old := Mon_End; END_IF;
(* Данная часть записывает значения _End из Modbus в EEprom при выполнении условий *) IF Mon_End = Mon_End_Old AND Mon_End_Modbus <> Mon_End_Old THEN bret := SysWriteParInt(ADR(Mon_End), Mon_End_Modbus); END_IF;
IF Mon_End = Mon_End_Modbus THEN Mon_End_Old := Mon_End; END_IF;
Сообщение отредактировал Andrey N. - 24.9.2020, 8:06
|
|
|
|
|
25.9.2020, 22:51
|
Группа: Участники форума
Сообщений: 24
Регистрация: 23.3.2017
Пользователь №: 318016

|
Спасибо. Я понял что вы имеете ввиду. Я так делал в этой же программе для того чтобы поймать изменение состояния в разных помещениях (их 9). Я брал старое слово состояния и смотрел изменилось ли оно. Если менялось значение я выполнял необходимые действия и потм, по завершению, перезаписывал его "старое" значение "новым". Своего рода защелка была, чтобы постоянно не гонять цикл подсчета битов.
|
|
|
|
|
1.10.2020, 8:12
|
Группа: Участники форума
Сообщений: 24
Регистрация: 23.3.2017
Пользователь №: 318016

|
Еще один вопрос, как можно программно посмотреть состояние соединения через sysMbMTcpNodeStatus? Я не очень дружу с ST Поэтому тяжело пока сообразить. Может есть какой-то мануал по ST?
|
|
|
|
|
14.10.2020, 17:44
|
Группа: Участники форума
Сообщений: 54
Регистрация: 13.2.2012
Пользователь №: 140013

|
Коллеги, день добрый.
Подскажите как замутить простой журнал аварий с выводом на дисплей ?
|
|
|
|
|
15.10.2020, 20:52
|
Группа: Участники форума
Сообщений: 172
Регистрация: 19.9.2010
Пользователь №: 72709

|
Добрый день!
1. Просмотреть текущий топик 2. Найти ссылку на хранилище, созданную Сергеем Медведевым 3. Найти в папке "Демо-проекты" нужный
|
|
|
|
|
17.10.2020, 15:03
|
Группа: Участники форума
Сообщений: 54
Регистрация: 13.2.2012
Пользователь №: 140013

|
Цитата(ogorsv @ 15.10.2020, 20:52)  Добрый день!
1. Просмотреть текущий топик 2. Найти ссылку на хранилище, созданную Сергеем Медведевым 3. Найти в папке "Демо-проекты" нужный Это я все сделал в первую очередь, что-то выглядит это все не совсем примитивно и нужно тратить много времени понять как это работает хотя бы... Хоть описали бы как и что. Нужен простой журнал) Для этого нужно куча кода ?
|
|
|
|
|
18.10.2020, 1:50
|
Группа: Участники форума
Сообщений: 172
Регистрация: 19.9.2010
Пользователь №: 72709

|
Хотите простоты - пробуйте VijeoDesiner и панели Magelis Там для вас будет простой журнал без кучи кода
|
|
|
|
|
19.10.2020, 8:45
|
Группа: Участники форума
Сообщений: 71
Регистрация: 5.2.2016
Пользователь №: 289254

|
Цитата(freefire78 @ 1.10.2020, 10:12)  Еще один вопрос, как можно программно посмотреть состояние соединения через sysMbMTcpNodeStatus? Я не очень дружу с ST Поэтому тяжело пока сообразить. Может есть какой-то мануал по ST? Для M171O: Цитата IF FC_P.present = FALSE THEN MbsAlarm_P := TRUE; ELSE MbsAlarm_P := FALSE; END_IF; Где FC_P - название в программе слейв-устройства. Для остальных контроллеров Цитата IF sysMbMRtuNodeStatus[11].pres = FALSE THEN AlarmComm_M11 := TRUE; ELSE AlarmComm_M11 := FALSE; END_IF; Где [11] номер Node вашего слейв устройства.
|
|
|
|
|
19.10.2020, 17:24
|
Группа: New
Сообщений: 1
Регистрация: 27.5.2013
Пользователь №: 193757

|
Добрый день.
Есть вопрос по TM172, суть такова:
Есть контроллер к нему по RS485 подключено 3 частотника ATV212, пытаюсь считать с них данные, и тут то происходит непонятка.
читаю функцией sysMbMRTU_FC03. В зависимости от погоды на солнце, функция может вернуть либо 0 - все хорошо, либо 16 - таймаут. Физически, частотники на запросы отвечают, это я проверил, подключившись на шину терминалом.
Также, последним параметром данной функции идет таймаут (как в описании написано), так вот это значение вообще никак не влияет на скорость обмена по сети (не на скорость передачи данных, а на число пакетов). Пробовал ставить 5000 (вроде как таймаут 5 сек должен быть), т.е. контроллер должен отправить запрос, и 5 сек ждать ответа, раз уж у него таймаут просиходит, светодиоды не должны мигать, однако при этом светодиоды обмена, которые в контроллере, как мигали так и мигают (примерно 3-4 пакета в секунду уходит).
Так же применяется функция FC06 (пуск/стоп уставка и т.п.). Ее код возврата не проверял, но данные в частотники пишутся нормально.
Все функции чтения/записи вызываются из background задачи. Задача всего одна.
Описания на эти функции не нашел (только то что в самой среде разработки, куцая подсказка о назначении параметров).
С данной серией контроллеров столкнулся впервые, потому прошу помощи, как эту ситуацию исправить? на что нужно обратить внимание?
|
|
|
|
|
20.10.2020, 6:04
|
Группа: Участники форума
Сообщений: 71
Регистрация: 5.2.2016
Пользователь №: 289254

|
Цитата(rexton @ 19.10.2020, 19:24)  Добрый день.
Есть вопрос по TM172, суть такова:
Есть контроллер к нему по RS485 подключено 3 частотника ATV212, пытаюсь считать с них данные, и тут то происходит непонятка.
читаю функцией sysMbMRTU_FC03. В зависимости от погоды на солнце, функция может вернуть либо 0 - все хорошо, либо 16 - таймаут. Физически, частотники на запросы отвечают, это я проверил, подключившись на шину терминалом.
Также, последним параметром данной функции идет таймаут (как в описании написано), так вот это значение вообще никак не влияет на скорость обмена по сети (не на скорость передачи данных, а на число пакетов). Пробовал ставить 5000 (вроде как таймаут 5 сек должен быть), т.е. контроллер должен отправить запрос, и 5 сек ждать ответа, раз уж у него таймаут просиходит, светодиоды не должны мигать, однако при этом светодиоды обмена, которые в контроллере, как мигали так и мигают (примерно 3-4 пакета в секунду уходит).
Так же применяется функция FC06 (пуск/стоп уставка и т.п.). Ее код возврата не проверял, но данные в частотники пишутся нормально.
Все функции чтения/записи вызываются из background задачи. Задача всего одна.
Описания на эти функции не нашел (только то что в самой среде разработки, куцая подсказка о назначении параметров).
С данной серией контроллеров столкнулся впервые, потому прошу помощи, как эту ситуацию исправить? на что нужно обратить внимание? Насколько я знаю, в M171O при использовании функций sysMbMRTU_FC их необходимо вызывать из Task Modbus. Но в M172 почему-то такого Task нет. В M172 проще добавить необходимые тэги в Configuration - RS485-2, и уже в программе их обрабатывать. А как контролировать связь с устройством, я уже писал выше.
|
|
|
|
|
1.12.2020, 11:52
|
Группа: Участники форума
Сообщений: 125
Регистрация: 8.12.2010
Пользователь №: 84957

|
Настраиваю OPC. В карте регистров контроллера 172 указан адрес 16384, тип переменной bool, R/W. Другой bool лежит в по адресу 9007, например. Для "стандартной" адресации Modbus этот регистр лежит в области "Discrete Input Contacts" а значит не может быть R/W. Или может? Я немого запутался в разном представлении адресаций разными производителями.
Какие арифметические преобразования в адресации M172 чтобы получить корректную адресацию? Если она и так корректная, то хорошо.
|
|
|
|
|
3.12.2020, 6:30
|
Группа: Участники форума
Сообщений: 71
Регистрация: 5.2.2016
Пользователь №: 289254

|
Цитата(Nitc @ 1.12.2020, 13:52)  Настраиваю OPC. В карте регистров контроллера 172 указан адрес 16384, тип переменной bool, R/W. Другой bool лежит в по адресу 9007, например. Для "стандартной" адресации Modbus этот регистр лежит в области "Discrete Input Contacts" а значит не может быть R/W. Или может? Я немого запутался в разном представлении адресаций разными производителями.
Какие арифметические преобразования в адресации M172 чтобы получить корректную адресацию? Если она и так корректная, то хорошо. Просто вбиваете в мастере эти адреса, и всё работает. Единственный момент есть. По-моему у R/W переменных M171/172, независимо от их типа, запись происходит только как в Holding Registers (функция 06). Поэтому, если у вас переменная в программе указана как bool, в мастере вы либо меняете значения нулевого бита, либо просто отправляете значение 0/1.
|
|
|
|
|
17.12.2020, 9:21
|
Группа: Участники форума
Сообщений: 125
Регистрация: 8.12.2010
Пользователь №: 84957

|
Цитата(Andrey N. @ 3.12.2020, 6:30)  Просто вбиваете в мастере эти адреса, и всё работает. Единственный момент есть. По-моему у R/W переменных M171/172, независимо от их типа, запись происходит только как в Holding Registers (функция 06). Поэтому, если у вас переменная в программе указана как bool, в мастере вы либо меняете значения нулевого бита, либо просто отправляете значение 0/1. Вы правильно написали, все переменные хранятся Holding Registers. Спасибо, ваш ответ сэкономил мне время и нервы!
|
|
|
|
|
30.12.2020, 11:54
|
Группа: New
Сообщений: 8
Регистрация: 11.7.2018
Пользователь №: 344813

|
Добрый день.
С наступающим
Есть вопрос по TM172, есть target block sysSMTP_sendemail. не могу задать IP ,пробовал массив 4 байта,стринг,и тд. ошибка. помогите как его записать. Сразу отмечу что файлы Медведева читал . и еще предвижу следующую ошибку , можно ли обойтись без файла?
|
|
|
|
|
31.12.2020, 10:46
|
Группа: New
Сообщений: 8
Регистрация: 11.7.2018
Пользователь №: 344813

|
Сам себе отвечаю через ADR.
|
|
|
|
|
9.1.2021, 1:13
|
Группа: New
Сообщений: 8
Регистрация: 11.7.2018
Пользователь №: 344813

|
Сам себе отвечаю по поводу можно ли обойтись без файла? пустой стринг массив 12 элементов.
|
|
|
|
|
17.1.2021, 19:34
|
Группа: Участники форума
Сообщений: 355
Регистрация: 21.12.2007
Пользователь №: 13966

|
Вопрос. Есть ли шанс нарулить в M172 по Ethernet работу с сокетами и подключение по MQTT? Или все, что доступно по Ethernet в среде разработки, лежит в Target blocks и target variables, и никаких дополнительных соответствующих библиотек нет?
|
|
|
|
|
5.2.2021, 13:29
|
Группа: New
Сообщений: 11
Регистрация: 9.10.2014
Пользователь №: 247150

|
Добрый день! Необходимо организовать связь между ПЛК М172 и удаленным устройством с протоколом Modbus TCP. M172 должен считывать с него данные по этому протоколу. Укажите пожалуйста последовательность действий при настройки ПЛК М172
|
|
|
|
|
6.2.2021, 15:01
|
Группа: Участники форума
Сообщений: 172
Регистрация: 19.9.2010
Пользователь №: 72709

|
Поиском по теме пробовали? Вроде уже здесь отвечали на такой вопрос Обратите внимание также на облачное хранилище, которое создал Сергей Медведев. Там и обучающие материалы есть, и примеры для разных задач Облачное хранилище М171-М172Ну и на youtube сейчас много полезного
Сообщение отредактировал ogorsv - 6.2.2021, 15:02
|
|
|
|
|
25.2.2021, 18:47
|
Группа: New
Сообщений: 1
Регистрация: 25.2.2021
Пользователь №: 388115

|
Добрый день!
Требуется выполнить проект на контроллере M172 (ТМ172PDG28R) с коммуникативным модулем RS232 (ТМ171ARS232) и GSM модемом iRZ (MC52iT). Готовое решение от Сергея Медведева смотрел, но к сожалению не смог разобраться полностью и вдобавок возникла проблема со здоровьем. Если есть специалист, кто поможет (за оплату), то буду благодарен.
Основная задача - это формировать смс-сообщения об авариях (точки BOOL Status Variables). Текст смс-сообщений желательно кириллицей, понимаю, что это связано с АТ командами для GSM модема, но вдруг. Каждая авария должна иметь свой текст смс-сообщения с возможностью активации на дисплее контроллера (т.е. эта авария будет отправляться или нет). Номера телефонов получателей смс-сообщений вводить на дисплее контроллера (не менее 5-6 номеров).
Надеюсь на помощь, спасибо.
|
|
|
|
|
  |
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
Реклама
ООО «Арктика групп» ИНН: 7713634274
ООО "Русич" ИНН 9721068883 / ЕРИД 2VtzqvMjLF8
ООО «УНИСПЛИТ» ИНН: 6453155081 erid:2VtzqxXgvJi
Реклама: ООО «СибСтронг» | ИНН 6670013662 | ERID: 2VtzqwyM2dc
Реклама: ООО «СЛ-ЛАЗЕР» ИНН 7727447267 | erid: 2VtzquvhFWx
Последние сообщения Форума
|