Page 1 sur 1

Valeur Maximale

Posté : 01 août 2017, 15:41
par Varda
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.

Re: Valeur Maximale

Posté : 01 août 2017, 15:53
par Béryl
Tu es en 16 bits signés.
Passe en 16 bits non signés ou en 32 bits.

Re: Valeur Maximale

Posté : 01 août 2017, 16:54
par phlag
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)