EnglishУкраїнськаmRussian
Login/New
Topic with many replies

OpenSCADA и связь с контроллерами siemens.


Author Message
Written on: 20. 02. 2017 [21:30]
Specar
Александр Антуганов
registered since: 04.07.2014
Posts: 20
Ура! Получилось!
При создании DB нужно ставить галочку совместимость с S7-300/400 (среда Portall 11)

или убрать оптимизацию в DB, появятся колонки со смещением.
Вопрос Роману по modbus RTU и modbus TCP с siemens 1200 пробовали обмениваться ?
Written on: 21. 02. 2017 [09:42]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
"Specar" wrote:

Вопрос Роману по modbus RTU и modbus TCP с siemens 1200 пробовали обмениваться ?

Я вроде нигде не писал, что у меня вообще есть-был Siemens 1200 или 200.

Learn, learn and learn better than work, work and work.
Written on: 02. 03. 2017 [11:33]
AlexAlex
Александр Алексеев
registered since: 02.03.2017
Posts: 1
Здравствуйте все. Прочитал и позавидовал тем у кого получилось.
Колочусь уже третий день:bang:
Контроллер у меня 1200-й. Все делаю по п 2 доки
1. Создаю контроллер ISO-TCP LibnoDave либо ISO-TCP243 LibnoDave
2. В графе "Адрес удаленного контроллера" его IP/
3. Добавляю шаблон.
4. Добавляю параметр
5. Счастья нет: либо нет ошибки, но принято и передано 0 байт, либо дает ошибку
Может кто-нибудь подсказать: что я делаю не так?
Кстати, я не понял, как он различает байтовые, 16-битовые и 32-битовые целые.
Буду благодарен за любой ответ.
Written on: 28. 03. 2017 [09:52]
vitaly
Виталий Литвиненко
registered since: 03.10.2014
Posts: 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..." функции, описанные в чужих библиотеках?
Written on: 28. 03. 2017 [10:07]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 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.
Written on: 29. 03. 2017 [09:09]
vitaly
Виталий Литвиненко
registered since: 03.10.2014
Posts: 3
"roman" wrote:


Глупость!

Если в том-же DAQ.Siemens добавить пользовательскую функцию к соответствующим из LibnoDave то будет тоже и без плодежа библиотек, которые по сути реализуют тоже и ничего дополнительно не решают!

Вы оказались правы. Все получилось. Оказалось проще, чем я ожидал, но есть маленькая неточность. В транспорте нужно указать порт 102, а в поле выбора типа соединения нужно указать ISO_TCP, а не ISO_TCP(LibnoDave) как можно предположить.
В данном случае мысль про использование чужих библиотек критики не выдерживает. А в принципе это возможно? Если у человека есть много своих библиотек(например, каких-то вычислений) и он хочет попробовать OpenSCADA? Используя свои библиотеки можно быстрее добиться первых положительных результатов, а потом от библиотек отказаться. Сама идея мне кажется интересной, как будет на практике - другой вопрос. Или я глупость написал?

[This article was edited 1 times, at last 29.03.2017 at 09:13.]
Written on: 29. 03. 2017 [11:33]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
"vitaly" wrote:

Вы оказались правы. Все получилось. Оказалось проще, чем я ожидал, но есть маленькая неточность. В транспорте нужно указать порт 102, а в поле выбора типа соединения нужно указать ISO_TCP, а не ISO_TCP(LibnoDave) как можно предположить.

Это не неточность, а отсутствие такой информации — добавил.

"vitaly" wrote:

В данном случае мысль про использование чужих библиотек критики не выдерживает. А в принципе это возможно?

Т.е. то, что внутри модуля DAQ.Siemens используется сторонняя библиотека LibnoDave Вам ни о чём не сказало!?
Тогда очевидно, что слепому ничего и не скажет тот факт, что есть специальные модули, которые по сути только и "биндят" сторонние библиотеки.

Learn, learn and learn better than work, work and work.
Written on: 31. 03. 2017 [18:58]
Specar
Александр Антуганов
registered since: 04.07.2014
Posts: 20
Всем доброго времени суток.
Затестил сегодня подключение S1200 через modbus rtu к скаде
сименс выступил slave устройством
в целом прошло успешно, но есть маленький момент
не получается сделать запрос на состояние бита в базе
C:0:r:coil:Бит - такой запрос обращается напрямую к входам-выходам. А как обратится к битовым состояниям в DB ума не приложу
Written on: 31. 03. 2017 [19:44]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 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.
Written on: 18. 07. 2017 [17:22]
Windo
Владимир Гришин
registered since: 18.07.2017
Posts: 2
Здравствуйте, дайте пожалуйста пример как считать значение из модуля ввода данных например с адреса IB 0, делаю связь следующим образом:
PLCsim-nettoplcsim-openscada(192.168.100.2:102).
Показывает что соединение активно, не могу разобраться как сделать шаблон и считать данные с входа контроллера.
При выключении plcsim выдает ошибку, значит связь есть.
В мануале не сказано как считать все доступные параметры с контроллера.



6511