Bonjour,
Je suis entrain de tester un programme que j'ai traduit à partir d'un programme en langage C.
Je me retrouve bloquée a un endroit en particulier:
Sur un réseau j'ai un Bloc ADD:
IN1: Valeur d'une tempo
IN2: Valeur d'une autre tempo
OUT: Un resultat qui est comparé à un compteur de temps. (C'est une recette)
Sauf que si le resultat passe au dessus de 32767, la valeur devient negative.
Exemple:
IN1: 2767
IN2: 30000
OUT: 32767
Mais si:
IN1: 2768
IN2: 30000
OUT: -32768
Dans mon programme j'ai:
IN1:15000
IN2: 30000
OUT:-20536
Je ne comprends pas comment cela est possible d'autant plus que sur PLCSIM la valeur de ce resultat donne bien 45000.
Je tiens a rajouter que je viens d'obtenir un poste d'automaticen (le premier de ma société) apres plusieurs années sans pratiquer (j'avoue nager...)
Est-ce qu'il y a une notion basique d'automatisme que j'aurais oublié?
J'espère avoir ete claire dans mon explication...
Je vous remercie d'avance de votre aide.
Valeur Maximale
- Béryl
- Mi homme - Mi automate

- Messages : 1953
- Enregistré le : 20 oct. 2015, 12:00
- Localisation : localhost
Re: Valeur Maximale
Tu es en 16 bits signés.
Passe en 16 bits non signés ou en 32 bits.
Passe en 16 bits non signés ou en 32 bits.
Re: Valeur Maximale
int : entier signé, 16 bits (-32768<->32767)
uint : entier non signé, 16 bits (0<->65535)
dint : entier double signé, 32 bits (-2147483648<->2147483647)
udint : entier double non signé, 32 bits (0<->4294967295)
uint : entier non signé, 16 bits (0<->65535)
dint : entier double signé, 32 bits (-2147483648<->2147483647)
udint : entier double non signé, 32 bits (0<->4294967295)

