Segnetics

Вернуться   Segnetics > Форум Segnetics > Связь с внешним миром

Связь с внешним миром Modbus, RS232, RS485, Lon и другое.

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2008, 17:26   #1
Николай Ушаков
Новичок
 
Регистрация: Oct 2008
Сообщения: 10
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию сетевые in-out переменные

очень хотелось бы чтобы появились in-out модбас переменные, не очень удобно задавать значение в один адрес, а считывать из другого. если задавать уставку, в некоторых панелях приходиться выводить два числа - одно заданное, другое фактическое, вместо того чтобы просто привязаться к одной переменной
Николай Ушаков вне форума   Ответить с цитированием
Старый 15.12.2008, 10:45   #2
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 112
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: сетевые in-out переменные

Наши контроллеры работают под управлением циклически работающей программы. Это значит, что данные перерассчитываются каждый такой цикл. Количество циклов может достигать сотни в секунду. Следовательно и "внутренние" данные на такой переменной будут обновляться так же часто.

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

И, в конце концов, это противоречит самой структуре стандарта modbus.

Обратите внимание на название пространств переменных: INPUT status, INPUT register. COIL status, HOLDING registers.

Input - входные; coil - катушка реле; holding - удерживание, закрепление.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 15.12.2008, 13:09   #3
AlexG
Senior Member
 
Регистрация: Jan 2006
Сообщения: 172
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: сетевые in-out переменные

1. HOLDING registers легко позволяют делать такое. В моих разработках так сделаны настройки которые можно изменить и по Модбасу и с панели контроллера.
2. У меня есть некоторые сомнения в возможности и целесообразности переписывать modbus-регистры сотню раз в секунду. Вы же не собираетесь записывать данные в каждом цикле, даже если значение переменной не изменилось?
AlexG вне форума   Ответить с цитированием
Старый 15.12.2008, 13:32   #4
Николай Ушаков
Новичок
 
Регистрация: Oct 2008
Сообщения: 10
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: сетевые in-out переменные

так оно и есть, циклическая программа вначале исполнения принимает данные, после выполнения сохраняет значения в тех же переменных, быстро скакать они не будут, потому что программу то пишу я сам, и сам определяю для чего мне эти переменые, например, есть уставка, которая может корректироваться алгоритмом - например ограничение, но когда у меня регистр только на запись, я об этой корректировке могу узнать только из другой переменной, а когда переменная одна и та же - есть окно для ввода-вывода значений, я ввожу уставку, и тут же после этого вижу ее реальное значение в контроллере. сейчас для этого нужно заводить второе окошечко, либо как то придумывать как обновить оконце с уставкой.
да и спецификация модбаса не говорит что это обязательно должны быть разные области, можно сделать одну область для input registers и для holding, а команды используй на запись одни, на чтение другие.
у вас же сейчас можно менять адрес переменных, если снять ограничение на адрес, то и будет счастье

сотню раз в секунду менять значение, конечно,нет никагого смысла, такие переменные нужны для настроек, а они меняются довольно редко.

Последний раз редактировалось Николай Ушаков, 15.12.2008 в 13:39
Николай Ушаков вне форума   Ответить с цитированием
Старый 15.12.2008, 13:49   #5
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 112
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: сетевые in-out переменные

1) Я не говорю, что это невозможно, я лишь указываю, что это неправильно с точки зрения modbus.

2) Упомянутые вами "modbus-регистры" это не что иное, как ОЗУ контроллера. Работает программа, хранит в ОЗУ свои данные. Модбас, как протокол, ориентирован на то, что запись и чтение происходят не из буфера, а напрямую в/из ОЗУ.

Это разгружает процессор контроллера от лишней работы, но вносит сумятицу в умы "обычных" программистов , привыкших работать на "больших" компьютерах, где любой протокол обеспечен отдельным защищённым буфером. А то и стек отдельно на каждую нитку связи создаётся.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 15.12.2008, 13:53   #6
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 112
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: сетевые in-out переменные

Когда вы читаете из "модбас-переменной" - вы читаете напрямую с выхода того блока, куда эта переменная подцеплена.

Когда вы пишете в переменную, вы пишете прямо на вход блока.

Вы не можете контролировать её обновление. Вы не можете иметь и вход и выход одновременно в одной ячейке ОЗУ.

К тому же, если вы читаете данные из контроллера, то не всё ли равно, откуда их читать?


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 15.12.2008, 14:57   #7
Николай Ушаков
Новичок
 
Регистрация: Oct 2008
Сообщения: 10
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: сетевые in-out переменные

почему я не могу иметь вход и выход в одной ячейке? если в начале выполнения блока я получаю доступ к ячейке, в процессе делаю с ней все что хочу, и после, оставляю.
сечас цепочка такая: панель-переменнная1-программа-переменная2-панель, но в окнах ввода вывода панелей нельзя читать из одних адресов, а писать в другие
а хотелось бы такую цепочку: панель-переменная-панель

а кстати, с какой версии ядра поддерживается "новая карта памяти"?
Николай Ушаков вне форума   Ответить с цитированием
Старый 15.12.2008, 15:57   #8
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 112
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: сетевые in-out переменные

С 242-й версии.

Блок в циклической программе совсем не равен подпрограмме в обычном "линейном" языке программирования.

Блоки не могут "получать доступ к ячейке", т.к. это не функции, вызывающиеся со структурой в стеке и возвращающие обработанную структуру обратно.

У входов блоков фиксированная структура, состоящая из выходов предыдущих блоков. У них нет отдельного ОЗУ и нет некоего "менеджера", перекладывающего данные из одного места в ОЗУ в другое.

У нас была мысль сделать переменные по аналогии с EEPROM(): с доступом на чтение/запись из программы и из сети, но пробная реализация показала крайнее неудобство пользования таких переменных в FBD-программе.

Мы ведём дальнейшие исследования, но пока всех устраивающего варианте нет.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 15.12.2008, 17:09   #9
AlexG
Senior Member
 
Регистрация: Jan 2006
Сообщения: 172
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: сетевые in-out переменные

Я предпочитаю опираться на стандарт, в нем я не видел указаний что регистры=ОЗУ. Раз стандарт не нарушается, значит все в порядке. Понятно что вариант с прямым наложением регистров на ОЗУ когда-то был первым и единственным. Такая реализация требует гораздо меньших накладных расходов, но сразу вызывает кучу ограничений. Это хорошо видно на примере SMH
AlexG вне форума   Ответить с цитированием
Старый 16.12.2008, 11:06   #10
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 112
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: сетевые in-out переменные

Да видно. Например, работа программы замедляется всего на 10% при опросе одновременно по двум портам.

Были бы выделенные обработчики, то во-первых под них ушла бы немалая часть ОЗУ (конкретнее 8кб, что составляет ровно половину от доступного ОЗУ для FBD-программы), что ограничило бы размер программы, во-вторых от быстродействия бы "отъелось" не 10%, а около 60%.

Следовательно для наших контроллеров мега бы не подошла, пришлось бы ставить арм-9 или что побыстрее.

В конце концов получился бы более дорогой контроллер только лишь для того, чтобы нельзя было сказать "Такая реализация требует гораздо меньших накладных расходов, но сразу вызывает кучу ограничений. Это хорошо видно на примере SMH"

Мы проверяли варианты с абсолютно "честными" стеками для сети. Цифры именно такие. Предпочитаю не спорить против математики, особенно когда она корешится с бухгалтерией.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 17.04.2009, 01:32   #11
vladun
Senior Member
 
Регистрация: Feb 2007
Сообщения: 174
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: сетевые in-out переменные

Галочка "Старая карта" в окошке Модбас переменных, что из себя представляет ? Можно ли снять ее (там вроде объем занятой памяти уменьшается радикально) для 236 ядра ?
vladun вне форума   Ответить с цитированием
Старый 17.04.2009, 11:14   #12
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 112
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: сетевые in-out переменные

Для 236 ядра вы получите сообщение типа "ядро не поддерживает распределение адресов" и программа не загрузится.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 17.04.2009, 15:48   #13
vladun
Senior Member
 
Регистрация: Feb 2007
Сообщения: 174
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: сетевые in-out переменные

Жаль...
А что реально такая экономия пространства ?
пардон, но ведь количество данных в сети от этого не меняется, верно ?

Последний раз редактировалось vladun, 17.04.2009 в 15:55 Причина: добавлено:
vladun вне форума   Ответить с цитированием
Старый 17.04.2009, 17:54   #14
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 112
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: сетевые in-out переменные

кол-во данных в сети не изменяется.

память освобождает.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 17.04.2009, 18:58   #15
vladun
Senior Member
 
Регистрация: Feb 2007
Сообщения: 174
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: сетевые in-out переменные

Спасибо!
Тут уже давали ответ, но я не могу его найти поиском по поводу загрузки канала МОДбаса: SMH (слейв): R переменные из него обновляются (идут в канал) по запросу Мастера ?
А R/W переменные так же, только по обращению всемогущего Master или постоянно вне зависимости от запросов Мастера ?
vladun вне форума   Ответить с цитированием
Старый 18.04.2009, 00:19   #16
AlexG
Senior Member
 
Регистрация: Jan 2006
Сообщения: 172
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: сетевые in-out переменные

Это же Модбас, в нем все происходит исключительно по запросам мастера
AlexG вне форума   Ответить с цитированием
Старый 18.04.2009, 01:32   #17
vladun
Senior Member
 
Регистрация: Feb 2007
Сообщения: 174
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: сетевые in-out переменные

Понятно.
Сенькс.
vladun вне форума   Ответить с цитированием
Старый 03.04.2013, 11:57   #18
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 112
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: сетевые in-out переменные

Цитата:
Сообщение от Radix Посмотреть сообщение
Абсолютное большинство приложений, реализующих Modbus, подразумевает двусторонний обмен данными через пространства регистров, доступные для записи. Более того, Confirmance Class 0 протокола предусматривает поддержку команд 3 и 16 - чтение и запись Holding Registers, без команд Input Registers - а с помощью Вашей реализации это будет передача в одну сторону. Симпатичный такой костыль получился.
Я понимаю, что вы хотите мне сказать, но повторяя слово "Modbus" вы каждый раз пытаетесь объяснить что тёплое потому тёплое, что оно мягкое.

Указанные вами функции у нас поддерживаются как в режиме "master", так и в режиме "slave". Всего остального никакие определения или описания протокола Modbus не касаются.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.

Последний раз редактировалось Arsie, 03.04.2013 в 12:33
Arsie сейчас на форуме   Ответить с цитированием
Старый 03.04.2013, 14:08   #19
ujin
Senior Member
 
Аватара для ujin
 
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: сетевые in-out переменные

На запрос записи регистра слейв должен ответить в течении таймаута. Нормальный ответ должен быть эхом после того, как регистр будет записан и исходя из требований Модбаса и исходя из возможностей контроллера. Функции 1,5,15 относятся к одной области памяти - Coils. Функции 3,6,16 к области памяти Holding Registers. Cледовательно функции чтения и записи могут адресоваться к одной и той же переменной в пределах своей области. Значение этой переменной может быть изменено уже к следующему ее чтению после записи. Т.е. формально через минимальный таймаут 3,5 периода после предыдущего запроса.
Получается с точки зрения стандарта переменные записываются из модбас, читаются в ФБД,..., Читаются из модбас. Пропущено записываются из ФБД. Вопрос к реализации Logix а не модбас
Не зная внутреннее устройство Logix реализация выглядит достаточно просто, как передать данные с выхода блока на его же вход.


__________________
В жизни 2 правила успеха:
1 Не говори всего что знаешь
2 ...
ujin вне форума   Ответить с цитированием
Старый 03.04.2013, 14:37   #20
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 112
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: сетевые in-out переменные

Цитата:
Сообщение от ujin Посмотреть сообщение
На запрос записи регистра слейв должен ответить в течении таймаута. Нормальный ответ должен быть эхом после того, как регистр будет записан и исходя из требований Модбаса и исходя из возможностей контроллера. Функции 1,5,15 относятся к одной области памяти - Coils. Функции 3,6,16 к области памяти Holding Registers. Cледовательно функции чтения и записи могут адресоваться к одной и той же переменной в пределах своей области. Значение этой переменной может быть изменено уже к следующему ее чтению после записи. Т.е. формально через минимальный таймаут 3,5 периода после предыдущего запроса.
Получается с точки зрения стандарта переменные записываются из модбас, читаются в ФБД,..., Читаются из модбас. Пропущено записываются из ФБД. Вопрос к реализации Logix а не модбас
Всё верно.

В FBD, из-за циклического характера выполнения программы, простейшая запись в ячейку памяти (т.е. "переменную") может спровоцировать автоколебания алгоритма. Эти колебания должны гаситься алгоритмически. Либо для каждой функции, связанной с двунаправленностью переменной (запись в память, работа в меню) нам нужно будет реализовывать отдельный FBD, как обычно подходящий не всем и не всегда.

По моей оценке, лучше иметь десяток возмущающихся человек от невозможности переустановки холдинг-регистров, чем сотни и тысячи убитых контроллеров, умерших либо из-за недостатка алгоритма, либо из-за недостатка знаний пишущего алгоритм.

Всё же FBD нацелен не на программистов, а на конструкторов и/или проектировщиков. Их проблемы цикличности мало волнуют и я не думаю, что есть даже один человек на миллион, которых держит это в памяти.

Причём я настаиваю, что трудности работы с уставками порождены неуниверсальностью структуры софта панели, который не позволяет указывать произвольную переменную в качестве обратной связи для уставки. Либо недостатком знаний человека, который не знает о такой возможности в софте панели.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.

Последний раз редактировалось Arsie, 03.04.2013 в 14:50
Arsie сейчас на форуме   Ответить с цитированием
Старый 03.04.2013, 16:07   #21
ujin
Senior Member
 
Аватара для ujin
 
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: сетевые in-out переменные

Цитата:
Сообщение от Arsie Посмотреть сообщение
По моей оценке, лучше иметь десяток возмущающихся человек от невозможности переустановки холдинг-регистров, чем сотни и тысячи убитых контроллеров, умерших либо из-за недостатка алгоритма, либо из-за недостатка знаний пишущего алгоритм.
Кому как. По мне так лучше иметь тысячу плюс десять довольных пользователей. Могу привести пример, где реализован двунаправленный доступ как к ОЗУ так и к EEPROM в более дорогих контроллерах (примерно в 6 раз дороже). Но ведь стремиться надо к лучшим. (Но за меньшие деньги).


__________________
В жизни 2 правила успеха:
1 Не говори всего что знаешь
2 ...
ujin вне форума   Ответить с цитированием
Старый 03.04.2013, 16:31   #22
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 112
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: сетевые in-out переменные

Цитата:
Сообщение от ujin Посмотреть сообщение
Кому как. По мне так лучше иметь тысячу плюс десять довольных пользователей. Могу привести пример, где реализован двунаправленный доступ как к ОЗУ так и к EEPROM в более дорогих контроллерах (примерно в 6 раз дороже). Но ведь стремиться надо к лучшим. (Но за меньшие деньги).
Не нужно мне приводить в пример приборы с СУБД "на борту". Пустое это.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 03.04.2013, 17:07   #23
ujin
Senior Member
 
Аватара для ujin
 
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: сетевые in-out переменные

Вот оно ключевое слово СУБД.
Систему баз данных можно рас-
сматривать как компьютеризированную систему хранения записей. Такая система вклю-
чает сами по себе данные (хранимые в базе данных), аппаратное обеспечение,
программное обеспечение (в частности, систему управления базами данных, или
СУБД), а также пользователей (что наиболее важно). Пользователи, в свою очередь,
подразделяются на прикладных программистов, конечных пользователей и
администраторов базы данных, или АБД. Последние отвечают за администрирование
базы данных и всей системы баз данных в соответствии с требованиями,
устанавливаемыми администратором данных. К.Дж.Дейт.
В нашем случае администрирование и модификацию базы данных производит и сам контроллер. Обеспечивая при этом доступ другим пользователям. А отсюда реляционная модель и взаимодействие между таблицами. Это все работало на Пентиуме 200 ММХ с 16 MB оперативной памяти. Почему вы считаете, что упоминать об этом пустое?


__________________
В жизни 2 правила успеха:
1 Не говори всего что знаешь
2 ...
ujin вне форума   Ответить с цитированием
Старый 03.04.2013, 17:14   #24
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 112
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: сетевые in-out переменные

Цитата:
Сообщение от ujin Посмотреть сообщение
Вот оно ключевое слово СУБД.

[...]

Это все работало на Пентиуме 200 ММХ с 16 MB оперативной памяти. Почему вы считаете, что упоминать об этом пустое?
Потому что то, что работало на Пентиуме 200ММХ с 16МВ ОЗУ никак не будет работать на ATMega 14МГц с 64Кб ОЗУ.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 05.04.2013, 10:53   #25
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 112
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: сетевые in-out переменные

Если вы действительно заинтересованы добавить "внутреннюю запись", то это достаточно легко сделать: создаёте сценарии применения, список сценариев обработки. Далее создаёте работающий макет на FBD, эмулирующий вашу функцию (обычный регистр вполне может сымитировать "переменную"). Если ваш макет покажет высокую устойчивость в каждом из сценариев - я обещаю вам реализацию этой функции в течении месяца.

Я уже проводил такую работу. И я знаю, что вреда будет больше, чем пользы.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.

Последний раз редактировалось Arsie, 09.04.2013 в 14:00
Arsie сейчас на форуме   Ответить с цитированием
Ответ


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

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



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


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