No description
| docs | ||
| examples | ||
| src | ||
| tests | ||
| .DS_Store | ||
| .gitattributes | ||
| .gitignore | ||
| bridge.sh | ||
| Cargo.lock | ||
| Cargo.toml | ||
| LICENSE.md | ||
| README.md | ||
Profinet RT parser
The primary protocols of concern are:
- DCP (Discovery and basic Configuration Protocol, L2)
- LLDP (Link Layer Discovery Protocol, L2)
- PPM (Cyclic Provider Protocol Machine, L3?)
- CPM (Cyclic Consumer Provider Protocol Machine, L3?)
- CMDEV (Context Management Protocol Machine Device, L3?)
- CMINA (Context Management Ip and Name Assignment protocol machine, L3?)
- CMIO (Context Management Input Output protocol, L3?, IEC 61158-6-10:2019)
- PBE (Parameter Begin End Protocol, L3?)
- CMRDR (Context Management Read Record Responder, L3?)
- CMPRC (Context Management RPC Device, L3?)
- CMSM (Context Management Surveillance, L3?)
- CMSU (Context Management Startup, L3?)
- CMWRR (Context Management Write Record Responder, L3?)
- FSPM (Fieldbus Application Layer Service Protocol Machine, L3?)
- PLUGSM (Plug State Machine, L3?)
- GSDML (ML)
Planning
- HW Prototype: ~6w (W32)
- SW Comm Prototype: +~2W (W34)
- SW Dispensor Prototype: (concurrent) +~1W (W35)
- Spec sheet
Error states
- General alarm
- Photocell stuck
- Motor stuck
Resources
- GSDML sample: https://github.com/andre-lost-a-pig/p-net-stm32/blob/main/Projects/NUCLEO-H723ZG-fatfs-freertos-lwip-osal-pnet-andre/Src/pn_dev/GSDML-V2.4-RT-Labs-P-Net-Sample-App-20220324.xml
- Profinet Python client: https://github.com/alfredkrohmer/profinet
- P-net reference impl: https://github.com/rtlabs-com/p-net/
- Captures: https://github.com/miguelob/ICS-Hacking/tree/main/Profinet%20%26%20Profibus/pcaps
- RT decoder:
0315f0f698/ProfinetTools.Logic/Transport/ProfinetEthernetTransport.cs (L226-L301)