Представляю свою версию маркоса регистрации ошибок.
Макрос ALERT16 предназначен для регистрации ошибок и передачи их в разные сценарии по обработке ошибок. Макрос может принять 16 ошибок. Макрос регистрирует ошибку и блокирует ее. Даже если сигнал ошибки на входе исчез, макрос продолжает сообщать об ошибке пока не будет произведен сброс.
Входы
- Сброс - BOOL - Сброс ошибки. Так же сбрасывает выход Сирена и Мигание даже если на входах до сих пор есть сигнал ошибки.
- Причина 1-16 - BOOL - Сигналы ошибок. Что бы ошибка была зарегистрирована достаточно просто импульса, но можно и постоянный сигнал.
Выхода
- Ошибка 1-16 - BOOL - Это просто трансляция входной переменной Причина 1-16 на выход
- Упак. WORD - WORD - Ошибки упакованы в переменную типа WORD где каждый бит это значение ошибки. Такая переменная нужно например для панели оператора ИП320. В списке ошибок, можно вводить адреса, только следующие один за други, по этому все ошибки должны распологаться в ряд. А в ПР, каждая сетевая переменная даже если булевая, попадает в новый регистр.
- Ошибка - BOOL - Если хотябы на одном входе есть сигнал, то он будет и тут. Это сумирование всех ошибок. Можно например вывести на световую индикацию ошибки. Если на входах причин, ошибок нет то и тут исчезает. Удобно использовать для блокировки процессов при наличии ошибок.
- Сирена - BOOL - Если на любой из входов придет сигнал, то тут появиться тоже сигнал. Разнице между предыдущим выходом в том, что если нажать сброс, этот выход сброситься даже если на входах есть сигналы ошибок. Выход сирена регистрируется через передний фронт сигнала ошибок. Что бы выход снова сработал после сброса, сначала все ошибки должны исчезнуть, а потом появиться хотя бы одной. Удобно использовать для звуковой сигнализации, что бы можно было отключить звук, даже если ошибка все еще присутствует.
- Мигание - BOOL - это выход который будет мигать кодом ошибки. Это регистрация. Даже если на входах уже нет сигналов ошибок, выход будет мигать пока не будет произведен сброс. На ПР200 я обычно на светодиод сажаю. Будет мигать столько раз, какой номер входа задействован. После серии миганий, пауза. Мигания подбирал так что бы было удобно считать не сбиваясь, при этом что бы было как можно быстрей.
- Посл. Номер - INT - Номер последней ошибки. Тоже регистрация. если даже ошибка ушла, номер будет виден, пока не произвести сброс. Это удобно использовать в динамических текстах. Создается список ошибок который автоматически нумеруется, и привязывается к переменной. На экране можно прочесть что за ошибка.




Ответить с цитированием


