-
Цитата:
Разбираюсь неплохо в C#
Начните с Console.ReadKey() вместо while (true) {} в конце Main() и не открывайте базу на каждое срабатывание таймера - это всё бесполезная загрузка системы. Ключ DES смешной. Предположение о существовании диска C: и о наличии доступа к нему тоже вызывают умиление. Триал - рано, если о деньгах думаете. За изобретение ставлю пять, а по предмету - неуд.
-
У меня простой вопрос, а нафига нужна платная программа чтения регистров при наличии бесплатных или необходимости использования OPC серверов ?
-
ключ des ради экономии времени, так проще. триал не ради тех кто тестирует, а есть конкретные согласования, что должно присутствовать. существование c: опять же так проще. Отличие этой программы от OPC что она может работать полностью без участия человека, кинуть сюда IP и порт, получить обратно кол-во регистров, послать xml с описанием что читать и программа сама создает базу и сама пишет данные. прислали еще IP и опять программа сама делает новую базу и опять пишет данные. Все в автоматическом режиме. Человек только получает данные или графики. SQLite локальная для отладки системы, далее будет замена на другую. За плечами более 10 лет работы с разными базами и программированием. Modbus для меня в новинку, поэтому и сложности. while (true) {} в конце Main() не используется. загрузка системы настолько незначительна, что брать в расчет это при срабатывании таймера не нужно. Плюс если адресов IP несколько, придется открывать базы на срабатывание таймера. Представим - открыл первую базу (она занята) теперь пишем данные, каждый раз надо ExecuteNonQuery() , т.е. надо открыть сессию для записи, далее в цикле открываем другой IP и так далее. Плюс надо учитывать lock базы при одновременном чтении и записи базы. Принимается любая критика, но только конструктивная.
-
если вы не знаете кол-во регистров и адреса то как вы их прочитаете, а если программа будет все их перебирать. а если сразу десятка два. и то что вы описывете как минимум каждый опрос в отдельном потоке и отдельный коннект к базе данных и шарп вам этого не простит если у вас не многопроцессорный пк и если вы не пишете под многопроцессорный пк. этож рихнуться на каждый плк по потоку да еще и по коннекту к бд. да еще и с одной машины. Бд может и выдержит а вот машина свашей програмкой будет безбожно висеть. (Лично проверял ради интереса).