Questions Modbus de niveau difficile
Questions d'examen blanc Modbus Industrial sélectionnées au niveau difficile. Idéal pour se préparer aux questions discriminantes du jour J.
Questions niveau Difficile
Q01
Pour transmettre une valeur flottante 32 bits IEEE 754 en Modbus (registres 16 bits), on utilise typiquement 2 registres consécutifs, avec le byte order spécifié dans la documentation du slave.VraiFaux5. Data encoding· 32-Bit-Float· DifficileRéponse correcteVraiSuggestion d'apprentissageModbus est nativement 16 bits, donc un float IEEE 754 ou un long 32 bits occupe deux registres consécutifs. Exemple : un compteur d'énergie qui affiche 12345.67 kWh code la valeur en IEEE 754 sur 0x4640E5C2 (4 octets), répartie en Big Endian sur le registre N (0x4640) et le registre N+1 (0xE5C2). Le client lit l'ensemble avec function 0x03 et count = 2, puis reconstitue le float côté applicatif. Les bibliothèques modernes (pymodbus, libmodbus) gèrent automatiquement la conversion à condition que le byte order soit précisé.
Q02
Modbus (RTU comme TCP) n'embarque aucune sécurité native : pas d'authentification, pas de chiffrement, pas de signatures. La bonne pratique consiste en une isolation stricte VLAN OT + firewall industriel + absence d'exposition internet.VraiFaux6. Practical· Cybersecurity· DifficileRéponse correcteVraiSuggestion d'apprentissageModbus a été conçu en 1979 à une époque où la sécurité n'était pas envisagée. Sur un réseau expose, les risques sont multiples : spoofing (n'importe quel hôte sur le réseau peut émettre un WriteRegister), sniffing (le trafic est en clair) et DOS (un flood de requêtes sature les slaves). Il existe bien une variante Modbus Secure (TCP avec TLS, RFC adoptée en 2018) mais son déploiement est très limite car les équipements terrain ne le supportent pas. Le standard industriel reste donc l'isolation réseau (firewalls industriels Hirschmann, Phoenix Contact mGuard, Siemens SCALANCE), le refus de l'exposition internet et le monitoring par sondes OT (Claroty, Nozomi).
Q03
Pour décoder une valeur float 32 bits (IEEE 754) sur 2 registres Modbus consecutifs, combien de combinaisons de byte order différentes le développéur peut-il rencontrer en pratique selon le slave ?- A.1 (Big endian standard)
- B.2 (Big endian, Little endian)
- C.4 (ABCD, DCBA, BADC, CDAB)
- D.8 (toutes les permutations possibles)
6. Endianness· Word Swap und Byte Swap· DifficileRéponse correcteC — 4 (ABCD, DCBA, BADC, CDAB)Suggestion d'apprentissageLa bonne réponse est C : quatre combinaisons sont rencontrees en pratique sur le terrain, ABCD (Big Endian standard, Modbus officiel), DCBA (Little Endian inverse), BADC (Big Endian Byte Swap, registres en bon ordre mais octets internes inverses) et CDAB (Little Endian Byte Swap, registres inverses mais octets internes en bon ordre). A est faux : le standard original ne specifiait que l'ordre des registres pour 16 bits et pas la combinaison de deux registres pour un float, donc seul ABCD est insuffisant. B est faux : Big et Little Endian seuls negligent les variantes Byte Swap très repandues. D est faux : seules 4 des 24 permutations théoriques (4!) sont effectivement implémentees, parce que chaque vendor a fige son choix sans aller plus loin dans les melanges. Les bibliotheques modernes (pymodbus, libmodbus) supportent les 4 ordres en paramètre.