Snap7 est basé sur le S7 Protocol (Protocol Siemens) :c’est l’implémentation de l’ISOTCP (RFC 1006).En S7 Protocol, chaque bloc est nommé PDU (protocol Data Unit).La longueur maxi d’un PDU dépend du processeur de communication.
La librairie Snap7 contient 3 objets : le client, le server et le partner. Ces trois objets peuvent être utilisés simultanément dans la même application, aussi plusieurs objets du même type peuvent être instanciés simultanément. La plupart des drivers de communication du marché sont des clients (LibNodave, Prodave, SAPI-S7 de siemens).
Snap7 client permet d’accéder à la totalité de la mémoire de l’automate (bloc de données, timers, compteurs etc…), contrôler l’automate (la mettre en marche, l’arrêter etc…), gérer le niveau de sécurité et effectuer la plupart des fonctions autorisées dans Simatic manager ou TIA Portal.
Snap7 Client a trois caractéristiques principales :
- PDU independence : chaque packet de données échangées avec l’automate doit être rangé dans un PDU pour lequel la taille varie entre 240 à 960 octets. Si lors de la transmission, les données à transférer excèdent la taille d’un PDU, les packets sont automatiquement segmentés sur plusieurs PDU.
- Smart Connect : La connexion au PLC est vérifié périodiquement afin de détecter les time-out ou perte de connexion lors de l’échange de données.
- Asynchronous Data Transfer : Snap 7 Supporte les deux modes de transmissions (synchrone et asynchrone) le mode de transmission asynchrone permet d’accéder à l’automate en multitâche. Le choix de transmission (synchrone ou asynchrone) dépend du nombre de tâches que l’on veut gérer simultanément. Si les données à envoyer tiennent dans un seul PDU, le choix entre le mode synchrone ou asynchrone revient au même.