Это старая тема, но меня интересует тема.
Существует библиотека Python для OPC: openopc на SourceForge.net (я использую проприетарный клиент OPCпотому что он предоставлен моим поставщиком автоматизации, Yokogawa.)
Для краткосрочных сборов данных вы можете использовать текстовый файл с разделителями, но для историка вы должны использовать базу данных.Я использую SQLite для скорости, размера и переносимости.Другие решения БД имеют свои преимущества.Конечно, если вы набираете 400 очков каждую секунду, то со временем ваша БД растет довольно быстро, поэтому важно эффективное хранение данных.
Используемый язык зависит от выбранного вами пакета OPC.OpenOPC для Python, ну да, для Python.Я использовал Graybox бесплатный OPC-клиент с .Net.OCX, который я использую на работе, проще всего использовать с VB6.Не уверен насчет других.
Время, необходимое для создания историка, полностью зависит от того, насколько полным должно быть приложение.Вероятно, вы можете собрать граббер данных за несколько часов.Многолетний историк с интерфейсами для просмотра данных, добавления и удаления точек, для поддержания целостности данных, для корректной обработки неверных данных и прерванной связи - все это займет дни, а не часы.