-
Связь времени опроса порта и периодом цикла PLC
PLC-100 работает в многоканальной системе, сводя выходные сигналы всех каналов через мультиплексор на один АЦП споследовательным выходом MCP3201.
Обслуживание АЦП идет согласно описанию на него: в программе PLC большой case, где в каждом состоянии выcтавляю сигнал чип-селект, начинаю дергать тактовый сигнал и на каждый такт читаю с ножки порта однобитовое значение, которые складываются в двоичное число.
Все стандартно.
В чем проблема?
Программа опроса работает как задача в цикле с периодом 2мс. Через каждые 2 мс меняются состояния входных сигналов и, начиная с четвертого тактового импульса, читаются значения выхода АЦП.
Все строго по pdf-у на АЦП. Осциллом вижу правильную картинку на ножках plc.
Есть еще две задачи, но они работают не циклично по системным событиям пропадания/появления питания для записи/чтения переменных их ОЗУ в Retain.
Но! при цикле 2 мс значения порта читаются с ошибкой, хаотичной во времени. Если входной сигнал АЦП для отладки я принудительно выставляю так, чтобы на его выходе шли только единицы (вижу это осциллом), в PLC я читаю не единицы, а случайную последовательность нулей и единиц.
Т.е значение ножки порта читается неправильно. Или - не успевает читаться.
Фильтрацию отключил.
При увеличении цикла до 10...15 мс ошибочные нули почти все пропадают - идет, как и должна быть, серия только единиц. Но мне такой медленный цикл опроса не подходит с учетом затрат времени на многоканальность.
Получается, что опрос ножек порта идет не в каждом цикле - если цикл короткий. Со своим периодом. Похоже, что процесс опроса ножек порта и цикл не связаны?
1. Как это может быть?
2. Что делать?
С уважением,
Herzog
Последний раз редактировалось Herzog; 24.05.2011 в 09:50.
Ваши права
- Вы не можете создавать новые темы
- Вы не можете отвечать в темах
- Вы не можете прикреплять вложения
- Вы не можете редактировать свои сообщения
-
Правила форума