2015-03-04 3 views
1

Я отвечаю за проект, в котором нам нужно собрать данные (11 тегов) из ПЛК и записать их в базу данных SQL с шагом 5 мс.Потеря данных с PLC на SQL Server

Это первый проект, требующий такой высокой частоты дискретизации, и мы собираем только 5-10% данных с нашей обычной конфигурацией (Rockwell Allen-Bradley CompactLogix PLC -> Kepware KEPserver -> VB. NET настольное приложение -> MS SQL). Я искал в Интернете и нашел некоторые сторонние продукты (SQL4automation, плагин DataLogger от Kepware, RSLinx, Ignition), которые обещают передачу данных без потери данных из ПЛК непосредственно в БД, но все они очень дорогостоящие.

Кто-нибудь нашел (идеально бесплатное) решение аналогичной проблемы? В настоящее время мы переписываем наши ПЛК и настольные приложения, чтобы записывать данные в два отдельных массива и копировать их поочередно - кто-нибудь имел успех в этом методе?

Если нет - опыт работы с сторонним программным обеспечением?

Спасибо за помощь, Дуги

+0

5 мс очень высокая скорость, учитывая все задержки ... Я действительно думаю, что наличие буфера данных в памяти ПЛК в таких случаях является нормой. Буфер должен содержать не более двух «снимков» тегов IMO. – matpop

ответ

0

Я достиг скорости опроса до 10мс от стандартного ПК и ПЛК Siemens без какой-либо специальной конфигурации для повышения производительности (буферов на PLC, ...)

Взгляните на: Snap7 - Step7 Ethernet Communication Suite

+0

Спасибо П.А., решение, которое вы предложили, выглядит перспективным для контроллеров Siemens и может пригодиться в будущем. Однако для этого проекта мы выбрали PLC Rockwell (Allen Bradley). – Dugi

0

Wonderware Historian предоставит вам разрешение. Драйверы могут фактически регистрировать данные и запускать изменения. Данные также автоматически сжимаются. С помощью Historian вы можете запросить базу данных SQL с шагом 5 мс и вернуть действительные реальные данные. Однако, Историк ничего, кроме свободного.

Короче, я бы сохранил все данные в ПЛК. Например, целая секунда с интервалом 5 мс. Затем передавайте эту информацию на SQL каждую секунду или около того.

Смежные вопросы