Valeur Maximale

Forum traitant des automates industriels de marque Siemens.
Répondre
Varda
Apprend le binaire
Apprend le binaire
Messages : 2
Enregistré le : 01 août 2017, 15:11

Valeur Maximale

Message 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.
Avatar du membre
Béryl
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1953
Enregistré le : 20 oct. 2015, 12:00
Localisation : localhost

Re: Valeur Maximale

Message par Béryl »

Tu es en 16 bits signés.
Passe en 16 bits non signés ou en 32 bits.
phlag
Code sa première boucle
Code sa première boucle
Messages : 18
Enregistré le : 02 juil. 2017, 12:01

Re: Valeur Maximale

Message 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)
Répondre