// ---- PortName = "COM4", Baud Rate = 9600, Parity = None,
// ---- Data Bits = 8, Stop Bits = One, Handshake = None_serialPort = new SerialPort("COM4", 9600, Parity.None, 8, StopBits.One);
_serialPort.Handshake = Handshake.None;
// Открытие последовательного порта
//Считываение из входного буфера SerialPort определенного число байтов и их запись в //байтовый массив, начиная с указанной позиции.
//Запись указанного числа байтов в последовательный порт, используя данные из буфера.
private byte[] createRespondMessage()
{
int numberOfPoints = 0;
int bytesToSend = 0;
int startAddress = 0;
numberOfPoints = (_messageReceived[4] << 8) | _messageReceived[5];
bytesToSend = 5 * numberOfPoints + 2;
byte[] respondMessage = new byte[bytesToSend];
respondMessage[0] = _slaveAddress;
respondMessage[1] = 3;
respondMessage[2] = Convert.ToByte(2 * numberOfPoints);
startAddress = (_messageReceived[2] << 8) | _messageReceived[3];
int j = 0;
for (int i = 0; i < numberOfPoints; i++)
{[i + j + 3] = Convert.ToByte((_registerData[startAddress + i] >> 8)& 0xff);[i + j + 4] = Convert.ToByte(_registerData[startAddress + i] & 0xff);
j++;
}
byte[] crcCalculation = CRCStuff.calculateCRC(ref respondMessage, bytesToSend - 2);
respondMessage[bytesToSend - 2] = crcCalculation[0];
respondMessage[bytesToSend - 1] = crcCalculation[1];
return respondMessage;
}
Тестирование работы протокола Modbus RTU в режиме Slave
программируемый логический контроллер фрейм
Описание пользовательских функций, поддерживаемых “Системой бесперебойного питания” при подключении по протоколу Modbus RTU:
- светодиот питание от сети
- светодиот питание от АБ
- светодиот питание от байпас
- светодиот авария
- надпись питание от дистр. сети
- питание от альтернативной сети
- питание от локальной сети
- питание от акб.
- заряд аб от дистриб. сети
- заряд аб от альтернативной сети
- заряд аб от локальной сети
- продажа энергии АБ в локальную сеть
- продажа энергии АИ в локальную сеть
Зададим параметры функций (см. Рисунок 5).
Рисунок 5 - Значения функций
Результат работы протокола Modbus RTU представлены на рисунке 6.
Рисунок 6 - Результат работы
2. Работа с ПЛК ОВЕН
ОВЕН ПЛК100 - Программируемый логический контроллер
Программируемый логический контроллер ОВЕН ПЛК100 предназначен для создания систем автоматизированного управления технологическим оборудованием в энергетике, на ж/д транспорте, в различных областях промышленности, жилищно-коммунального и сельского хозяйства, на опасных производственных объектах (например Котлонадзора), подконтрольных органам Ростехнадзора.
Логика работы ПЛК100 определяется потребителем в процессе программирования контроллера. Программирование осуществляется с помощью системы программирования СоDеSуs 2.3.8.1 и старше.
ПЛК100-220.Р-L - контроллер с номинальным напряжением питания 220 В переменного тока, оснащенный э/м реле и имеющий лицензионное ограничение размера области ввода-вывода в 360 байт.
Технические характеристики ПЛК100 представлены в таблице 3.
Таблица 3 - Технические характеристики ПЛК100
|
Общие сведения |
|
|
Конструктивное исполнение |
Унифицированный корпус для крепления на DIN-рейку (ширина 35 мм), длина 105 мм (6U), шаг клемм 7,5 мм |
|
Степень защиты корпуса |
IР20 |
|
Напряжение питания: ПЛК100-24 ПЛК100-220 |
18…29 В постоянного тока (номинальное напряжение 24 В) 90…264 В переменного тока (номинальное напряжение 220 В) частотой 47…63 Гц |
|
Потребляемая мощность, не более ПЛК100-24 ПЛК100-220 |
6 Вт* 10 Вт |
|
Индикация передней панели |
1 индикатор питания 8 индикаторов входов 12 индикаторов выходов |
|
Ресурсы |
|
|
Центральный процессор |
32-х разрядный RISC-процессор 200 МГц на базе ядра АRМ9 |
|
Объем оперативной памяти |
8 Мбайт |
|
Объем энергонезависимой памяти хранения ядра СоDеSуs, программ и архивов |
4 Мбайт** |
|
Размер Retain-памяти |
|
|
Время выполнения цикла ПЛК |
Минимальное 250 мкс (не фиксированное), типовое от 1 мс |
|
Дискретные входы |
|
|
Количество дискретных входов |
8 |
|
Гальваническая развязка дискретных входов |
есть, групповая |
|
Электрическая прочность изоляции дискретных входов |
1,5кВ |
|
Максимальная частота сигнала, подаваемого на дискретный вход |
1 кГц при программной обработке 10 кГц при применении аппаратного счетчика и обработчика энкодера |
|
Дискретные выходы |
|
|
Количество дискретных выходов в: ПЛК100-24.Р и ПЛК100-220.Р ПЛК100-24.К |
6 э/м реле 6 сдвоенных транзисторных ключей (всего 12 выходных сигналов) |
|
Гальваническая развязка дискретных выходов Электрическая прочность изоляции дискретных выходов |
есть, индивидуальная 1,5кВ |
|
Интерфейсы связи |
|
|
Интерфейсы |
Ethernet 100 Ваsе-Т RS-232 - 2 канала RS-485 USB 2.0 -Device |
|
Скорость обмена по интерфейсам RS |
от 4800 до 115200 bps |
|
Протоколы |
ОВЕН ModBus-RTU, ModBus-АSCII DСОN МоdBus-ТСР GateWay (протокол СоDеSуs) |
|
Программирование |
|
|
Среда программирования |
СоDеSуs 2.3.8.1 (и старше) |
|
Интерфейс для программирования и отладки |
RS-232 USB-Device Ethernet |
Рисунок 7 - Схеме работы Овен ПЛК 100 через GSM модем ПМ01
Создадим новый проект в среде разработки CoDeSys, с конфигурацией,
представленной на рисунках 8-9.
Рисунок 8 - Конфигурация проекта
Рисунок 9 - Конфигурация проекта
Зададим минимальное время цикла равное 10 мс (см. Рисунок 10).
Рисунок 10 - Задание минимального времени цикла
Установим интерфейс, при помощи которого подключен модем, RS-485-1 и
установим его сетевые настройки (см. Рисунок 11).
Рисунок 11 - Задание интерфейса
Для работы с модемом добавим 2 библиотеки: UNM.lib и SmsOwenLib.lib (см.
Рисунок 12).
Рисунок 12 - Подключение библиотек
Зададим логику работы программы, добавив функциональные блоки из ранее
подключенных библиотек (см. Рисунок 13).
Рисунок 13 - Логика работы программы
Для соединения ПЛК с компьютером через последовательный модем необходимо
изменить конфигурацию ПЛК, так как представлено на рисунке 14, а так же зададим
дополнительные настройки сетевого окружения Windows (см. Рисунок 15)
Рисунок 14 - Параметры связи ПЛК
Рисунок 15 -Параметры сетевого окружения Windows
Откомпилируем проект и загрузим его в ПЛК ОВЕН 100, после чего выполним
тестирование (см. Рисунок 16).
Рисунок 16 - Тестирование проекта
Отправим СМС сообщение с текстом “Пуск” на номер Сим-карты установленной
в модеме ПМ01 (см. Рисунок 17).
Рисунок 17 - Отправка СМС сообщения
После доставки СМС сообщения, на ПЛК ОВЕН 100 загорится первое реле (см.
Рисунки 18-19).
Рисунок 18 - Сообщение доставлено
Рисунок 19 - Результат доставки сообщения
Заключение
В период прохождения производственной практики я проделала следующую работу:
· изучила работу протокола ModBus RTU;
· научилась работать с последовательным портом в среде Visual Studio C#
· изучила работу ПЛК ОВЕН 100;
· ознакомилась с организационной структурой, задачами и функциями отдела предприятия;
· ознакомилась с системой профессиональных обязанностей и должностными инструкциями специалистов отдела;
Список литературы
1. <http://www.owen.ru>
. <https://ru.wikipedia.org/wiki/Modbus>
. Статья: “Visual Studio C#: работа с последовательным портом” <http://microsin.net/programming/PC/visual-studio-sharp-dot-net-com-port.html>
. Аннотация протокол передачи данных mod <https://www.google.ru/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0CB0QFjAA&url=http%3A%2F%2Fintellect-module.ru%2Fdownloads%2Fmanuals%2Finode_35D%2FModBus_RTU.pdf&ei=4S2eVZvtB4X5ywOeq5zgCg&usg=AFQjCNERrkv2njA7DavN-2LcA7oggtNzWw&sig2=NdyIki622TdnedrXf5wGKg&bvm=bv.96952980,d.bGQ>bus rtu. <http://intellect-odule.ru/downloads/manuals/inode_35D/ModBus_RTU.pdf>