WORD ou INT ?

Forum traitant des automates industriels de marque Siemens.
steph68
Codeur fou
Codeur fou
Messages : 269
Enregistré le : 21 oct. 2015, 08:23

Re: WORD ou INT ?

Message par steph68 »

hello,

le soucis vient surtout du support des vieilles fonctions du S5 (du temps ou tout était WORD et le INT ou UINT n'existait pas).

les compteurs Z ne sont pas des objets de la norme IEC 61131-3. Un équivalent doit surement exister dans cette norme et le paramètre sera un INT.
idem pour les tempos systèmes type S5 qui sont remplacées plus avantageusement par des blocs TON et TOF.

dans la norme, concernant les variables 16 bits, il y a :

- le type INT qui est un entier signé (-32768 à +32767)
- le type UINT qui est un entier non signé (0 à 65535)

les entiers c'est pour faire de l'arithmétique (addition, soustraction ...) --> donc pour des compteurs

- le type WORD qui est un champ de bits (un groupement de 16 bits)

avec les types WORD on ne peut faire que des opérations booléennes (SET, RESET, OR, AND, XOR ...) --> pratique pour des états d'alarmes en "paquet" par exemple

- le type WCHAR qui représente un caractère unicode (donc en théorie pas d'opération supportée - autre que l'affectation - sur ce type)

donc tu mélanges plusieurs concepts, ce qui explique que ce n'est pas "clean".

moralité:

soit tu fais tout à l'ancienne (style S5 avec du WORD partout)
soit tu fais tout selon la nouvelle norme et tu n'utilises pas les blocs Z mais son équivalent

@+
Avatar du membre
josé
Codeur fou
Codeur fou
Messages : 263
Enregistré le : 20 oct. 2015, 17:02

Re: WORD ou INT ?

Message par josé »

bonjour,
Dans mes programmes S7, j'ai gardé une habitude S5 ;
Laisser "libre" les mementos de MW200 a MW255. Ils etaient utilisé par les blocs standards SIEMENS.
Donc pour contourner la vérification du format ; un MOV de ma valeur dans MW240 et utilisation de MW240 en entrée de bloc.

Faire simple c'est compliquer.
Créateur de pannes ...
Répondre