|
Связь с внешним миром Modbus, RS232, RS485, Lon и другое. |
|
Опции темы | Поиск в этой теме |
19.09.2007, 14:13 | #61 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 157
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Диспетчеризация и modbus
'встроенные взможности ТМ6' - это не что иное, как вcтроенный сервер. Поэтому изменение надёжности - вопрос открытый, т.к. один сервер заменён другим. Это ещё называется "шило на мыло"
Ничего против ТМ6 не имею, кроме того, что бабла она стоит немалого. Поэтому на мастерскаде и остановились. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
19.09.2007, 14:50 | #62 |
Senior Member
Регистрация: Jun 2007
Адрес: Tyumen
Сообщения: 2 056
Благодарил(а): 20 раз(а)
Поблагодарили:
22 раз(а) в 22 сообщениях
|
Ответ: Диспетчеризация и modbus
Для сравнения опс сервер лектус виснет, если нет связи с каким-либо одним устройством из списка. В ТМ6 такой проблемы нет. Так что никакого "шило на мыло нет". Знакомые используют хороший опс сервер для модбаса который стоит 800 баксов на один комп. Ничуть не дешевое решение.
|
20.09.2007, 08:12 | #63 |
Senior Member
Регистрация: Jun 2007
Адрес: Tyumen
Сообщения: 2 056
Благодарил(а): 20 раз(а)
Поблагодарили:
22 раз(а) в 22 сообщениях
|
Ответ: Диспетчеризация и modbus
Да и еще... если использовать ОПС сервер + скада то происходит передача данных из одного приложения в другое... а если использовать встроенный сервер то передача данных происходит внутри одного программного продукта, и уже точно будет протестированна. Кроме того... елси мы все-равно используем ТМ6 а в нем есть встроенный сервер то глупо при этом использовать сторонний ОПС сервер. Другое дело если бы мы использовали дргую скада систему, в которой нет встроенного сервера.
|
20.09.2007, 11:33 | #64 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 157
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Диспетчеризация и modbus
Цитата:
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
19.12.2007, 14:50 | #65 |
Новичок
Регистрация: Dec 2007
Сообщения: 16
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Как связать
День добрый.
Ситуация: Есть 4 опоры подъёмника, на каждой стоит двигатель мощностью 3 кВт. Кроме этого на каждой опоре стоит по три концевика. Управлять всем этим будет SMH2010. Задача: Опрос всех концевиков, управление частотниками. Проблема: Нужно обеспечить минимум кабелей, в идеале оставить только силовой, либо протянуть сигнальные вместе с силовым. Длины кабелей - по 20 метров. Как это можно сделать? Существует ли недорогое оборудование, позволяющее увязать всё это по радиоканалу? |
19.12.2007, 15:02 | #66 |
Senior Member
Регистрация: Jan 2006
Сообщения: 172
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Как связать
Недорогое это сколько по вашему?
Я бы подключил концевые выключатели на дискретные входы частотников, а затем связал все частотники с SMH по RS-485. |
19.12.2007, 15:21 | #67 |
Новичок
Регистрация: Dec 2007
Сообщения: 16
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Как связать
Недорогое - в пределах 1000 евро за всё ( 4 стойки и модуль на контроллер).
Вариант! Частотники Данфос FC51 микро. Но: 1. 20 метров в одном гофрорукаве с силовым кабелем - будет ли связь по 485??? 2. Что будет если какой нибудь рамшан с джамшутом перерубят кабель??? (И 380в коротнёт на информационный провод) |
19.12.2007, 16:03 | #68 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 157
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Как связать
1. Внутрь гофрорукава запихнуть маленький металлический гофрорукав с сигнальными проводами. Как менее затратный вариант - сигнальный провод типа FTP-5, там уже есть собственный фольгированный экран. Но это чуть худший вариант. Всё остальное - "от лукавого" и 100% гарантий не даст.
2. Поставить в шкафу управления два предохранителя, как указано в Руководстве, страница 27. Есть держатели как для дин-рейки, так и в разрыв провода. Гоги перерубит кабель, предохранители сгорят. Обугленный Гоги упадёт на землю __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
20.12.2007, 10:44 | #69 | |
Senior Member
Регистрация: Jan 2006
Сообщения: 172
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Как связать
Цитата:
|
|
20.12.2007, 12:20 | #70 |
Новичок
Регистрация: Mar 2007
Сообщения: 7
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Диспетчеризация, OPC-сервер и modbus
Здравствуйте! С сетью Modbus знаком слабенько, подскажите пожалуйста как лучше всего реализовать сеть из контроллеров для диспетчеризации. Есть около 60 контроллеров SMH 2010 и диспетчерский компьютер. Поправьте если не прав, из прочитанного понял, что на один мастер можно повесить до 32 слейвов по RS485, сам мастер подключить к компу по RS232. А вот с многоранговой сетью как быть? Сколько можно устройств там использовать?
|
20.12.2007, 13:14 | #71 | |
Senior Member
Регистрация: Jan 2006
Сообщения: 172
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Диспетчеризация, OPC-сервер и modbus
Цитата:
2. мастером может быть непосредственно компьютер 3. что вы называете многоранговой сетью? Максимальное количество слейвов ограничено количеством возможных адресов в сети - 247 по стандарту, хотя на практике может быть и 255. |
|
20.12.2007, 17:49 | #72 | |
Новичок
Регистрация: Mar 2007
Сообщения: 7
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Диспетчеризация, OPC-сервер и modbus
Цитата:
Последний раз редактировалось Dmitriy, 20.12.2007 в 17:53 |
|
20.12.2007, 20:14 | #73 |
Новичок
Регистрация: Dec 2007
Адрес: Санкт-Петербург
Сообщения: 17
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Реализация функций Modbus в SMH
Я разрабатываю приборы для измерения веса (ВЕС-027, ВЕС-032, ВЕС-042).
Сейчас мы начинаем их тестировать на совместимость с SMH-2010. В связи с этим кучка вопросов: 1. Какие функции протокола Modbus использует SMH-мастер при обращении к регистрам слейва (для переменных типа R(in), R(out), R/W(out), и для разных типов (int, real, bool)? 2. Как используются функции чтения/установки дискретных выходов (1, Read Coil Status; 5, Force Single Coil)? Что им соответствует в SMLogics? 3. Используется ли групповой запрос для чтения нескольких регистров? Делается ли он автоматически (например, при непрерывности адресов регистров)? 4. На какие функции реагирует SMH-Slave? |
21.12.2007, 06:04 | #74 | ||
Senior Member
Регистрация: Jan 2006
Сообщения: 172
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Диспетчеризация, OPC-сервер и modbus
Цитата:
Это не мастер и не слейв, а, грубо говоря, усилитель сигнала. В ModbusRTU мастер может быть только один. Цитата:
|
||
21.12.2007, 07:32 | #75 |
Новичок
Регистрация: Dec 2007
Сообщения: 16
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Как связать
Я пострадаю - мне позвонят, и выбоють!
Ну а если серьёзно - предприятие не промышленное, станция тех обслуживания грузовых автомобилей. Единственное - если работать будет только часть частотников, то есть серьёзная вероятность перевернуть машину. Со всеми трагическими последствиями (переверните камаз в гараже...). Соответственно нужно будет предусмотреть какую нибудь синхронизацию, дабы не допустить подобного развития событий... А вообще - кто что может сказать по этим модемам? Насколько они надёжны? Смогут ли они гарантированно держать связь? (расстояние между модулем контроллера и стойками - не более 20, ну может чуть больше, метров. Но между ними будет висеть грузовая машина)??? |
21.12.2007, 09:00 | #76 | |
НЕ сотрудник Segnetics
Регистрация: Feb 2006
Сообщения: 540
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Как связать
Цитата:
составляет СЕКУНДЫ. Это значит, цикл опроса системы в худшем случае составит секунд 6-8. Соответственно, стойки будут работать неравномерно. Я бы так не рисковал. Арси предложил единственно правильный вариант, мне так кажется. |
|
21.12.2007, 10:01 | #77 |
Новичок
Регистрация: Mar 2007
Сообщения: 7
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Диспетчеризация, OPC-сервер и modbus
Понятно, спасибо большое за пояснения.
|
21.12.2007, 19:11 | #78 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 157
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Реализация функций Modbus в SMH
Соответствие функций во вложенном файле.
Групповые запросы формируются автоматически, если данные позволяют это сделать. SMH-slave отвечает на запросы с функциями 01h, 02h, 03h, 04h, 05h, 06h, 0Fh, 10h. SMH-master посылает запросы с функциями 01h, 02h, 03h, 04h, 0Fh, 10h - если разрешено использование групповых запросов и использует функции 01h, 02h, 03h, 04h, 05h, 06h, если использование групповых запросов запрещено. Функции чтения в этом случае также формируют запросы на чтение одиночных регистров/битов. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
21.12.2007, 20:23 | #79 |
Новичок
Регистрация: Dec 2007
Адрес: Санкт-Петербург
Сообщения: 17
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Реализация функций Modbus в SMH
Спасибо. Очень полезная информация.
И ещё вопрос. Читая описания SMH и SMLogix, мне показалось, что после записи данных от SMH в слейв, SMH _обязательно_ делает запрос на чтение этих данных. Это так? Действительно обязательно? Мне это не очень надо, т.к. в моих приборах некоторые функции записи данных используются как команды. Например, как команды переключения режимов. И читать после таких команд, по сути, нечего (Конечно, есть чего, но уж всяко не посланные "данные"). Вопрос: SMH _обязательно_ делает запрос на чтение данных после записи данных? |
24.12.2007, 12:36 | #80 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 157
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Реализация функций Modbus в SMH
Да, обязательно. Это сделано для проверки правильности операции записи.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
24.12.2007, 20:43 | #81 | |
Новичок
Регистрация: Dec 2007
Адрес: Санкт-Петербург
Сообщения: 17
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Реализация функций Modbus в SMH
Цитата:
То есть, если слейв принял запрос, и ответил без установки бита ошибки в команде (command += 0x80), то всё в порядке. Этого вполне достаточно для контроля правильности операции. Зачем ещё что-то проверять? Конечно, для Супер-Надёжности можно проверять вообще всё, что можно. Например, напряжение питания слейва, ... Но, не все параметры в слейве можно проверить. Категорически требую убрать из протокола SMLogics запрос чтения после команды установки значений. Если не согласитесь, буду жаловаться в ООН! С уважением, |
|
25.12.2007, 05:24 | #82 |
Senior Member
Регистрация: Jan 2006
Сообщения: 172
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Реализация функций Modbus в SMH
Присоединяюсь к этому требованию. Такой контроль записи совершенно избыточен. К тому же в некоторых моих разработках есть регистры доступные только на запись и много регистров результат чтения из которых может отличаться от того что записывалось. Вообще, ситуация когда записанное в регистр значение успевает изменяется до чтения SMH мне кажется весьма вероятной.
|
25.12.2007, 05:32 | #83 |
Senior Member
Регистрация: Jan 2006
Сообщения: 172
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Реализация функций Modbus в SMH
Дополнение:
Есть также случаи, когда надо максимально быстро передавать данные по модбасу, а скорость обмена увеличить невозможно (пример - управление частотником в насосной станции). В этом случае эти дополнительные запросы на чтение совершенно лишние. |
25.12.2007, 10:49 | #84 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 157
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Реализация функций Modbus в SMH
Обрабатывать ответы подчинённого устройства в FBD-программе, скажем так, не очень удобно. Гораздо проще поставить компаратор.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
25.12.2007, 10:50 | #85 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 157
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Реализация функций Modbus в SMH
Согласен, дополнительная нагрузка сети бывает лишней.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
29.12.2007, 01:10 | #86 |
Новичок
Регистрация: Dec 2007
Адрес: Санкт-Петербург
Сообщения: 17
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Реализация чтения длинных чисел Modbus
Как читаются длинные данные (real, long) из постороннего слейва в SMH? Какой порядок байтов при чтении?
Число в формате real (или long) кодируется 4-мя байтами: D0, D1, D2, D3. В стандарте Modbus принято правило Big Endian. То есть старшие байты передаются первыми. Мне кажется, что в SMH сперва читается младший регистр, потом старший. То есть порядок байтов такой: D1, D0, D3, D2. Разве это по стандарту Modbus? Как передаются 4-х байтовые числа в SMH? |
29.12.2007, 16:44 | #87 |
Senior Member
Регистрация: Jan 2006
Сообщения: 172
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Реализация чтения длинных чисел Modbus
стандарт Modbus ничего не говорит о передаче long, float и т.д. поэтому все делают на свое усмотрение.
|
29.12.2007, 20:47 | #88 | |
Новичок
Регистрация: Dec 2007
Адрес: Санкт-Петербург
Сообщения: 17
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Реализация чтения длинных чисел Modbus
Цитата:
Но что делать? Работать-то надо! Нам надо договориться, как мы связываемся, обмениваемся данными, по крайней мере с SMH. Фактически - что? надо дописать протокол Modbus? (в части long, float). По крайней мере в зоне spb.ru. Я говорил не о "букве закона Modbus" (там действительно нет ничего о real, long), а о "духе закона", где декларируется правило Big Endian, т.е. передача старших байтов первыми (и, как я надеялся, старших регистров первыми) Вопрос ко всем: как приборы посторонних фирм (потусторонних фирм :-) отвечают на запрос длинных данных (4-байтовых: real, float, long, 8-байтовых)? |
|
03.01.2008, 11:25 | #89 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 157
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Реализация чтения длинных чисел Modbus
Тут всё же немного вы не правы. Как правило, данные передаются так, как хранятся, чтобы не терять время на транзитную перекодировку.
Соответственно и в SMH: Правило Большого Индейца нарушено не бухты-барахты, а чтобы снизить накладные расходы. PS. Кстати, а кто мешает не использовать long/real вообще? Нет типа данных - нет проблемы ~(с) __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
03.01.2008, 14:11 | #90 |
Новичок
Регистрация: Dec 2007
Адрес: Санкт-Петербург
Сообщения: 17
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Реализация чтения длинных чисел Modbus
Думаю, тут неправ modbus.org
А данные я и передаю, так как они хранятся. И никакой перекодировкой не занимаюсь. Например, стандартный float запихиваю в union: union {float aFlt; char b[4];} uFlt; uFlt.aFlt=fWeight; // и в данных для передачи получаю Большого-большого Индейца TxData[3]=uFlt.b[3]; TxData[4]=uFlt.b[2]; TxData[5]=uFlt.b[1]; TxData[6]=uFlt.b[0]; А не использовать long/real вообще... Спасибо, но лучше - вы к нам ~(с) Кстати, в своих приборах я вышел из этой проблемы, сделал настройку Индейца. Теперь по команде мастера переключаюсь с Большого-большого Индейца на Малого-большого. Чего и вашему лоджику желаю! И других успехов в новом году! |