Форум программистов, компьютерный форум, киберфорум
Наши страницы
Контроллеры PLC
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.89/85: Рейтинг темы: голосов - 85, средняя оценка - 4.89
Tyiler
49 / 49 / 2
Регистрация: 30.05.2014
Сообщений: 82
1

Библиотека для обмена данными с ПЛК Siemens S7-300/400

15.07.2014, 08:04. Просмотров 16235. Ответов 47
Метки нет (Все метки)

Предлагаю следующую библиотеку для обмена с контроллерами siemens серии S7-200, 300, 400, 1200* для платформы NET.
  • Обмениваться можно переменными типа DB и меркерами*.
  • Данные для обмена объявляются в файлах формат txt, xlsx или xml.
  • Данные читаются и пишутся по именам заданным в этом файле.

* - версия 1.1


Пример:
  • Заполнение таблицы сигналов
    Библиотека для обмена данными с ПЛК Siemens S7-300/400

  • Связь с ПЛК
    Код
      // создаем клиент
    PLCS7_NET.CL.Client cl = new PLCS7_NET.CL.Client();
    
    // иниц-ия данных      
    cl.Init(@".\tableSignal.xlsx", TypeInitFile.xlsx);
    
    // соединяемся с ПЛК
    int er =  cl.Connect(_ipAddr, _rack, _slot, _timeUpd);
  • 3. Чтение данных
    Код
        bool err;
    
     int val1 =  cl.ReadInt16("DriveFlt", out err);
    
    int val2 =  cl.ReadByte("Press", out err);
    
    double val3 = cl.ReadReal("Flow", out err);
  • 4. Запись данных
    Код
        cl.WriteInt32("Force", 34, out err);

Скачать (исходник и мануал прилагаются): PLCS7_NET_RUS_V1.0.rar


Изменения версии 1.1:
- добавлена возможность чтения/записи меркер области;
- добавлен контроллер S7-1200

Скачать (исходник и мануал прилагаются): PLCS7_NET_V1.1.rar
8
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.07.2014, 08:04
Ответы с готовыми решениями:

IP защита ПЛК Siemens Simatic 300
Здравствуйте, хочу узнать мнение опытных людей о том как контроллеры Siemens...

Запрос к области памяти ПЛК siemens s 300 по сети Profibus
Доброго времени суток. Возникла необходимость соединить 2 контроллера Siemens s...

Libnodave. Библиотека для доступа к ПЛК Siemens серии S7
Для модераторов: По мотивам http://www.cyberforum.ru/post2368464.html набивка...

Перенос проекта для WPLSoft на Siemens 300
Доброго времени суток , у меня такой вопрос , у нас есть бетонный завод , стоят...

Соединение ПЛК S7-400 со SCADA
Добрый день! Передо мной стоит задача запрограммировать контроллер на базе...

47
Tyiler
49 / 49 / 2
Регистрация: 30.05.2014
Сообщений: 82
19.01.2015, 07:26  [ТС] 2
raxp. не знаю кто такой Михаил.. просто тема уже загажена сообщениями к делу не относящимися, почистить бы ее.. ну нет-так нет
0
Veras
0 / 0 / 0
Регистрация: 06.11.2012
Сообщений: 10
08.02.2015, 21:57 3
А к PLCSim можно подключиться с помощью этой библиотеки?
0
Tyiler
49 / 49 / 2
Регистрация: 30.05.2014
Сообщений: 82
09.02.2015, 12:20  [ТС] 4
врядли, ведь соединение происходит с реальным плк, а если у вас там симулятор, будет ли он вообще отвечать.. можете попробывать
0
ser_maksim
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 20
08.05.2015, 17:11 5
Эта библиотека создана на базе LibNoDave?
0
Tyiler
49 / 49 / 2
Регистрация: 30.05.2014
Сообщений: 82
08.05.2015, 19:28  [ТС] 6
Цитата Сообщение от ser_maksim Посмотреть сообщение
Эта библиотека создана на базе LibNoDave?
нее.. с нуля была создана, путем реверса протокола S7
0
ser_maksim
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 20
26.06.2015, 18:09 7
Добрый день! Подскажите возможно ли использовать вашу библиотеку для NET Compact Framework 3.5?
0
Tyiler
49 / 49 / 2
Регистрация: 30.05.2014
Сообщений: 82
26.06.2015, 20:10  [ТС] 8
насчет fr 3.5 compact не знаю, надо чтобы там была поддержка сокетов TCP и все, больше ничего не надо от него.

исходник в раздаче есть же, пересоберите с любым фрайм-ом и работайте.
0
Militar347
3 / 3 / 0
Регистрация: 05.08.2015
Сообщений: 13
17.08.2015, 16:22 9
С S7-300 работает идеально, а вот с 1200 ничего получить не смог(
0
Tyiler
49 / 49 / 2
Регистрация: 30.05.2014
Сообщений: 82
18.08.2015, 13:28  [ТС] 10
хм.. у меня работало норм. может версия какая новая у вас 1200-го. хотя не должно влиять это по идее..

Добавлено через 5 минут
аа... посмотрите чтобы db-ки, до которых вы пытаетесь добраться были Не защищены для чтения/записи (не помню как параметр назыв)
0
Militar347
3 / 3 / 0
Регистрация: 05.08.2015
Сообщений: 13
18.08.2015, 13:53 11
уже решил проблему: нужно было включить "permit access with put/get communication from remote partner" в параметрах контроллера)
0
ceasar
0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 12
21.04.2016, 13:04 12
Добрый день. Нужно считать данные из таблицы контроллера(DB1). Контроллер S7-1200.
Смогу ли я подключиться с помощью этой библиотеки?

Пробовал подключится с помощью LibNoDave, коннект проходит но возвращается ошибка 33028, при попытке считать данные из таблицы(
0
Militar347
3 / 3 / 0
Регистрация: 05.08.2015
Сообщений: 13
21.04.2016, 14:00 13
Да, конечно. Если возникнут вопросы - пишите, чем смогу - помогу
0
ceasar
0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 12
21.04.2016, 14:11 14
Спасибо. Сегодня попробую написать небольшую программку для пробы подключения, используя эту библиотеку. По результатам отпишусь.
На сколько я понял обязательно должен стоять флажок "permit access with put/get communication from remote partner"?
А с LibNoDave Вы не работали раньше?
0
Militar347
3 / 3 / 0
Регистрация: 05.08.2015
Сообщений: 13
21.04.2016, 14:21 15
В зависимости от модели контроллера: допустим на новом 1214С (6ES7 214-1HG40-0XB0) включал этот флажок.
На старом (6ES7 214-1AG31-0XB0) он вообще отсутствует.
С LibNoDave не работал.

А в какой средой разработки для PLC пользуетесь?
0
ceasar
0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 12
21.04.2016, 14:42 16
Мне нужно написать на C# небольшую программку, которая с периодичностью в несколько секунд будет считывать данные из таблицы контроллера и запишет их в MS SQL Server(для хранения).

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

Проблемы только с чтением данных их контроллера( с остальным я всем знаком.
0
ceasar
0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 12
22.04.2016, 02:21 17
Небольшой вопрос: Я все правильно делал?

private void button1_Click(object sender, EventArgs e)
{
try
{
Client cl = new Client();

int err = cl.Init(@"TableSignal.xlsx", TypeInitFile.xlsx);
err = cl.Connect("192.168.0.12", 0, 1, CpuType.S71200, 500);

MessageBox.Show("err", err.ToString());

Items _items = cl.GetItems();

bool rez;
int val = cl.ReadInt16("iPrevDay", out rez);

MessageBox.Show(rez.ToString());

this.textBox1.Text = val.ToString();

cl.Disconnect();

}
catch (Exception exp)
{
MessageBox.Show("Error - " + exp.Message);
}
}

Содержимое файла "TableSignal.xlsx"
DB1.DBW0 | iPrevDay | Int16 | read

Таблица в контроллере DB1 - img1.jpg.
0
Миниатюры
Библиотека для обмена данными с ПЛК Siemens S7-300/400  
Militar347
3 / 3 / 0
Регистрация: 05.08.2015
Сообщений: 13
22.04.2016, 08:39 18
В свойствах самого блока данных DB1 во вкладке аттрибуты необходимо убрать флажок с свойства Optimized block access
0
ceasar
0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 12
22.04.2016, 09:18 19
Спасибо. За совет. А код по получению данных из контроллера правильно написан? и содержимое файла "TableSignal.xlsx"?
0
Militar347
3 / 3 / 0
Регистрация: 05.08.2015
Сообщений: 13
22.04.2016, 10:12 20
Вроде бы все правильно. Пробовали компилировать?
0
22.04.2016, 10:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.04.2016, 10:12

Получить данные с ПЛК S7-300
Добрый день. Я весьма далекий человек от контроллеров siemens, но по ряду...

Подключение термометра сопротивления к ПЛК Siemens
Доброго времени суток. У меня возник такой вопрос, как подключит термометор к...

Организация связи между ПЛК Siemens Logo и ПК
могите плиз сам в этой теме впервые имеем ПЛК siemens logo и пк нужно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru