Автор |
Повідомлення |
Повідомлення створено: 20. 02. 2017 [21:30]
|
Specar
Александр Антуганов
Зареєстрован(а) с: 04.07.2014
Повідомлення: 20
|
Ура! Получилось!
При создании DB нужно ставить галочку совместимость с S7-300/400 (среда Portall 11)
или убрать оптимизацию в DB, появятся колонки со смещением.
Вопрос Роману по modbus RTU и modbus TCP с siemens 1200 пробовали обмениваться ?
|
Повідомлення створено: 21. 02. 2017 [09:42]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
|
"Specar" wrote:
Вопрос Роману по modbus RTU и modbus TCP с siemens 1200 пробовали обмениваться ?
Я вроде нигде не писал, что у меня вообще есть-был Siemens 1200 или 200.
Learn, learn and learn better than work, work and work.
|
Повідомлення створено: 02. 03. 2017 [11:33]
|
AlexAlex
Александр Алексеев
Зареєстрован(а) с: 02.03.2017
Повідомлення: 1
|
Здравствуйте все. Прочитал и позавидовал тем у кого получилось.
Колочусь уже третий день:bang:
Контроллер у меня 1200-й. Все делаю по п 2 доки
1. Создаю контроллер ISO-TCP LibnoDave либо ISO-TCP243 LibnoDave
2. В графе "Адрес удаленного контроллера" его IP/
3. Добавляю шаблон.
4. Добавляю параметр
5. Счастья нет: либо нет ошибки, но принято и передано 0 байт, либо дает ошибку
Может кто-нибудь подсказать: что я делаю не так?
Кстати, я не понял, как он различает байтовые, 16-битовые и 32-битовые целые.
Буду благодарен за любой ответ.
|
Повідомлення створено: 28. 03. 2017 [09:52]
|
vitaly
Виталий Литвиненко
Зареєстрован(а) с: 03.10.2014
Повідомлення: 3
|
Добрый день! Подключение к S7-1200 теоретически возможно по iso on tcp, но для этого нужно описывать обмен данными в контроллере. Контроллер может использовать только 8 таких соединений. Они у меня используются для обмена данными между контроллерами. Опрашивать значения переменных в контроллере хочется через 102 порт напрямую (как это делает tia portal). Для этого есть готовые библиотеки, например snap7. Есть пример кода на С, использующего эту библиотеку:
#include “snap7.h”;
byte MyDB32[256];
S7Object Client; // It’s a native integer
void SymplyGet()
{
MyClient = Cli_Create();
Cli_ConnectTo(MyClient, “192.168.10.100”,0,2);
Cli_DBRead(MyClient, 32, 0, 16, &MyDB32);
Cli_Destroy(&MyClient); // passed by ref
}
Получается, что в OpenSCADA настраивать транспорт и описывать протокол не нужно, можно использовать только "Вычислитель на java подобном языке". Как можно использовать в коде контроллера "Вычислителя на java..." функции, описанные в чужих библиотеках?
|
Повідомлення створено: 28. 03. 2017 [10:07]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
|
"vitaly" wrote:
Получается, что в OpenSCADA настраивать транспорт и описывать протокол не нужно, можно использовать только "Вычислитель на java подобном языке". Как можно использовать в коде контроллера "Вычислителя на java..." функции, описанные в чужих библиотеках?
Глупость!
Если в том-же DAQ.Siemens добавить пользовательскую функцию к соответствующим из LibnoDave то будет тоже и без плодежа библиотек, которые по сути реализуют тоже и ничего дополнительно не решают! Кроме того это Вы ещё не сталкивались с "багадромом" от подобных библиотек, когда они работают прямо с массой ПЛК, часть из которых отсутствует, попытки подключения к которым неконтролируемо лочат обмен с присутствующими и/или приводят к падению в виду нереентерабильного обращения к БД сетевых адресов, при подключении.
Пример пользовательских функций можно посмотреть в ModBus http://wiki.oscada.org/Doc/ModBus#h592-18 , но часто проще и удобнее получить готовые данные, а не стрим области данных или PDU, в случае с ModBus.
Более того, протокол ISO-TCP хоть и формально закрыт, но он проще чем MMS поверх того-же порта 102 и может быть реализован прямо на JavaLikeCalc без каких либо внешних библиотек вообще: http://wiki.oscada.org/HomePageEn/Using/APIFunctionLibs/LibUserPrtDevs
P.S. Подумайте про то, что мне как автору интересно и в принципе возможно было реализовывать и проверить только то, что у меня есть, следовательно то чего у меня нет это проблема тех у кого оно есть и они должны, понимая это, добавить такую опцию в существующий код, на то оно и OpenSourсe!
P.P.S. Или как минимум проверить по протоколу или через LibnoDave (где масса опций которые не используются) опции, которые нужно-бы добавить, но точно не предлагать новый и потенциально кривой велосипед, явно демонстрируя своё невежество и нежелание ознакомится с тем что уже есть!
Learn, learn and learn better than work, work and work.
|
Повідомлення створено: 29. 03. 2017 [09:09]
|
vitaly
Виталий Литвиненко
Зареєстрован(а) с: 03.10.2014
Повідомлення: 3
|
"roman" wrote:
Глупость!
Если в том-же DAQ.Siemens добавить пользовательскую функцию к соответствующим из LibnoDave то будет тоже и без плодежа библиотек, которые по сути реализуют тоже и ничего дополнительно не решают!
Вы оказались правы. Все получилось. Оказалось проще, чем я ожидал, но есть маленькая неточность. В транспорте нужно указать порт 102, а в поле выбора типа соединения нужно указать ISO_TCP, а не ISO_TCP(LibnoDave) как можно предположить.
В данном случае мысль про использование чужих библиотек критики не выдерживает. А в принципе это возможно? Если у человека есть много своих библиотек(например, каких-то вычислений) и он хочет попробовать OpenSCADA? Используя свои библиотеки можно быстрее добиться первых положительных результатов, а потом от библиотек отказаться. Сама идея мне кажется интересной, как будет на практике - другой вопрос. Или я глупость написал?
[Повідомлення редагувалось 1 раз(ів), останній раз 29.03.2017 в 09:13.]
|
Повідомлення створено: 29. 03. 2017 [11:33]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
|
"vitaly" wrote:
Вы оказались правы. Все получилось. Оказалось проще, чем я ожидал, но есть маленькая неточность. В транспорте нужно указать порт 102, а в поле выбора типа соединения нужно указать ISO_TCP, а не ISO_TCP(LibnoDave) как можно предположить.
Это не неточность, а отсутствие такой информации — добавил.
"vitaly" wrote:
В данном случае мысль про использование чужих библиотек критики не выдерживает. А в принципе это возможно?
Т.е. то, что внутри модуля DAQ.Siemens используется сторонняя библиотека LibnoDave Вам ни о чём не сказало!?
Тогда очевидно, что слепому ничего и не скажет тот факт, что есть специальные модули, которые по сути только и "биндят" сторонние библиотеки.
Learn, learn and learn better than work, work and work.
|
Повідомлення створено: 31. 03. 2017 [18:58]
|
Specar
Александр Антуганов
Зареєстрован(а) с: 04.07.2014
Повідомлення: 20
|
Всем доброго времени суток.
Затестил сегодня подключение S1200 через modbus rtu к скаде
сименс выступил slave устройством
в целом прошло успешно, но есть маленький момент
не получается сделать запрос на состояние бита в базе
C:0:r:coil:Бит - такой запрос обращается напрямую к входам-выходам. А как обратится к битовым состояниям в DB ума не приложу
|
Повідомлення створено: 31. 03. 2017 [19:44]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
|
"Specar" wrote:
C:0:r:coil:Бит - такой запрос обращается напрямую к входам-выходам. А как обратится к битовым состояниям в DB ума не приложу
http://oscada.org/ru/forum/posts/vnedrenie_i_razrabotka_v_openscada/transportnyi_protokol_modbus_bity_v_registre_na_chtenie_i
Learn, learn and learn better than work, work and work.
|
Повідомлення створено: 18. 07. 2017 [17:22]
|
Windo
Владимир Гришин
Зареєстрован(а) с: 18.07.2017
Повідомлення: 2
|
Здравствуйте, дайте пожалуйста пример как считать значение из модуля ввода данных например с адреса IB 0, делаю связь следующим образом:
PLCsim-nettoplcsim-openscada(192.168.100.2:102).
Показывает что соединение активно, не могу разобраться как сделать шаблон и считать данные с входа контроллера.
При выключении plcsim выдает ошибку, значит связь есть.
В мануале не сказано как считать все доступные параметры с контроллера.
|