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)