Улавяне на EtherNet/IP UDP трафик от енкодери Allen-Bradley 842E
AB842E UDP заснемането на пакети не може да спре при липсващи отговори – филтрите включват само определени пакети. Използвайте заснемане в буфер и времето на...
Когато абсолютен енкодер Allen-Bradley 842E EtherNet/IP замлъкне, инстинктивното изискване за заснемане е „спри трасировката след N заявки ENIP без отговор“. Този мисловен модел се вписва добре в стълбовата логика, но не и в Wireshark, tcpdump или повечето механизми за заснемане в специализирани устройства. Тези инструменти оценяват филтрите за включване върху съществуващи кадри. Безшумният енкодер не генерира UDP/2222 кадри Class 1, с които филтърът да съвпадне, така че няма върху какво да се спре. Диагностичният проблем е откриване на липса, а не съвпадение със сигнатура.
Заснемайте непрекъснато по UDP 2222, след което сравнете наблюдаваните кадри от енкодера с изчисленията за RPI — не чакайте отрицателен тригер, който анализаторът не може да изрази.
Обхват и портове
Тази процедура обхваща вариантите 842E-SIP, 842E-MIP, 842E-DIP и M12, описани в 842E-UM001. Потвърдете фърмуера от уеб страницата на енкодера в Diagnostics → Device Information. Работният I/O използва CIP Class 1 през UDP порт 2222; явното обменяне на съобщения използва капсулиране на EtherNet/IP през TCP/UDP 44818. Профилите за заснемане трябва да активират и двата порта, но при изследване на липса на комуникация фокусът е върху създадените/консумираните assemblies по 2222.
| Порт | Трафик | Типична честота |
|---|---|---|
| 2222 | Неявен I/O (създаден/консумиран) | RPI, често 10 ms |
| 44818 | Явен CIP | При поискване |
| 67/68 | BOOTP/DHCP | Само при включване |
Защо тригерите за липса не работят
Филтрите за показване са булеви предикати, прилагани към всеки кадър. Филтър като (udp.port == 2222) && (eth.src == <842E_MAC>) запазва кадрите от енкодера, когато те пристигнат. Когато не пристигнат, предикатът никога не става истина. За да се поддържа състояние от типа „четири заявки с нула отговора“, е необходимо междупакетно състояние, което стандартните инструменти за заснемане не поддържат. Диагностичните раздели на модулите в Studio 5000, статистиките на устройствата във FactoryTalk Linx и анализът след заснемане могат да изразят това състояние.
Заобиколно решение 1: ринг буфер и последващо преброяване
- Огледайте порта на комутатора, към който е свързан енкодерът, към NIC на анализатора.
- Заснемайте UDP 2222 в ринг буфер (например пет файла по 40–50 MB).
- Отворете pcap файла и филтрирайте по MAC адреса на енкодера и UDP 2222.
- Сравнете броя кадри с observation_time / RPI. Отклонения над около 5% изискват проверка.
tcpdump -i eth0 -w capture.pcap udp port 2222 # Филтър за показване в Wireshark: eth.addr == <842E_MAC> && udp.port == 2222
Заобиколно решение 2: прозорци, съобразени с RPI
Съобразете прозорците за заснемане с цели кратни на RPI на енкодера, така че буферът да съдържа пълни I/O обменни цикли. При RPI от 10 ms 10-секунден прозорец трябва да съдържа около 1000 кадъра Class 1, ако връзката е изправна. По време на прегледа практическото условие за спиране е интервал, по-голям от три периода на RPI, в колоната „секунди от предишния кадър“.
Заобиколно решение 3: CIP статус и броячи на комутатора
Периодично изпращайте заявки Get_Attribute_Single към CIP Identity Object, клас 0x01, екземпляр 1, атрибут 6 (Status). Промените в битовете Owned или Configured показват, че връзката Class 1 е прекъснала — обикновено след три пропуснати RPI. Независимо от това, проверявайте ifOutUcastPkts на управлявания комутатор за порта на енкодера; непроменен брояч за повече от 3 × RPI потвърждава липсата на комуникация и без pcap файл.
Процедура на място и често срещани проблеми
Проверете IP адреса, RPI и екземплярите на assemblies (стандартно създаден 0x04 / консумиран 0x01) спрямо конфигурацията на модула в Logix. Потвърдете светодиодите за връзка, заснемайте шестдесет секунди, пребройте кадрите и след това опитайте CIP нулиране, ако броят е нула. Трафик, който се възстановява след нулиране, но продължава да пропуска RPI, насочва към шум по кабела, спад на захранването през M12 или дублиран IP адрес. Постоянната липса на комуникация след изключване и повторно включване насочва към Ethernet PHY — сменете енкодера. Не губете време в създаване на тригер „спри при липса на отговор“; анализаторът не може да го изрази. Поддържайте резервните енкодери и контролери съобразени със стандартите на предприятието за PLC и PAC, когато даден модул се повреди на място.
За автора
Mark Townsend | Старши инженер по автоматизация – системи Allen-Bradley
Mark Townsend е старши инженер по автоматизация с над 18 години опит с платформи Allen-Bradley, включително ControlLogix, CompactLogix и по-старите SLC-500. Ежедневната му работа включва логика в RSLogix / Studio 5000 и пускане в експлоатация на HMI системи FactoryTalk View при остарели и смесени паркове от оборудване.