Для начала - принцип работы:
Есть несколько машин, которые переезжают с места на место. По достижении её места назначения , она "паркуется", и начинает "выгрузку". По этой команде создается "ячейка массива" (500 байт) с шапкой (дата, время, тех. параметры и т.д.). Каждые 25 сантисекунд в данную ячейку массива записывается значение тока. Таких "ячеек 60. Примерно тоже самое с загрузкой (60 ячеек, по 10 байт), но без записи тока. Тамже в массиве данные для дисплея (подключен к контроллеру через СОМ1) с данными следующей "выдачи" для машиниста. Для дисплея данные (график) загружаются с ПК. Их два по 60х4 + шапка.
В массиве все работает по кругу. Появились новые данные ПК считывает (по возможности). Если данные не считаны, то следующие добавляются в конец. Если дошли до 60 несчитанных, то данные смещаются на -1 и новая запись пишется в конец. (работа по кругу, сохранение последних 60).
На ПК работает "сервер" (на основе моей PLC_dll.dll) который и следит за всем, распаковывает полученные данные, пишет в базу данных, ведет лог сбоев связи (сколько и в каком месте) и т.д.
Да, данные для ПК "упакованы" для уменьшения трафика. В контроллере массив хранится в области памяти под батарейкой (60 кБ). Сетевых переменных в контроллере всего 20. Работа PlcNet без таймаутов, тоесть за секунду 6..8 циклов опроса и записи всех контроллеров. Скорость 57600.
Пишите, что интересует конкретно!