Fråga:
Är styrmodulens spänning och batterispänningen densamma?
Soumya Sen
2016-01-04 21:04:38 UTC
view on stackexchange narkive permalink

Är styrmodulens spänning (från OBD-läge 01 PID 42) och batterispänningen densamma? Om inte, vad är förhållandet mellan dem? Varför är maxvärdet för styrmodulens spänning (från OBD-läge 01 PID 42) 65,535 V, när batterispänningen max kan vara 14 V i en bil?

För att klargöra: får du * faktiskt * 65,535V som läsning, eller bara undrar du varför den * maximala möjliga * avläsningen är det specifika antalet?
Om det var ett maximivärde på 99,999 skulle resonemanget vara ganska tydligt (5 siffror, med decimaltecken efter andra). 65535 är i binär vad 99999 är i decimal.
Fyra svar:
Zaid
2016-01-04 21:41:13 UTC
view on stackexchange narkive permalink

Det verkar som om problemet är med den inkommande signalen.

Om inte ditt fordon är utrustat med en flödeskondensator, är 65 V över batteriet lite för mycket. Till och med tunga lastbilar kör inte den spänningen så vitt jag vet.

65535 är det maximalt osignerade 16-bitars heltalet.

Tittar på OBD-II wiki-sida det ser ut som att formeln som används av OBD-II PID enligt SAE J1979 är:

  (A * 256 + B) / 1000  

Där A är de två första byten, är B de två följande byten. Om A och B båda är 255 (så 11111111 i binär) kommer du att få maximal möjlig spänning, 65,535 V


Om detta resultat kommer från en simulator skulle jag fästa skulden där. Om det här är signalen som kommer från ett riktigt fordon, letar jag efter en ECU-kort (inte säker men). Se till att du avfrågar rätt adress för att utesluta det som en möjlighet för den ovanliga spänningen.

Styrmodulens spänning är den spänning som matas till ECU. Det är inte batterispänning men är vanligtvis nära nog när fordonet går.

Inte som bilprogramvara är så bra att börja med. Detta är förresten ett fantastiskt svar. :)
JPhi1618
2016-01-04 21:40:12 UTC
view on stackexchange narkive permalink

Jag tror att det du ser är bara en artefakt av hur datorer fungerar. Siffran du anger är bara 65535 med ett decimal in i det. Det är ett speciellt nummer för datorer - det är det största värdet som kan hållas i ett 16-bitars (2 byte) heltal. Så, helt enkelt, det är det största värdet som kan returneras för den specifika mätningen på grund av datorvariabeln de bestämde sig för att använda. Det är en planering av programmeringen - de förväntar sig inte att den någonsin mäter 65 volt. Om detta var ett värde som kan vara positivt eller negativt kan du se ett maximalt värde på 32 767.

Ett annat nummer som du kan se mycket är 255. Detta är det maximala värdet på en 8-bitars (enstaka byte) osignerat nummer. Om värdet kan vara positivt eller negativt är maxvärdet 127.

Se mitt svar. Jag tror att jag är på något ...
Vanligtvis är 12 *** 7 *** det maximala värdet för ett signerat 8-bitars heltal.
@immibis, Du fick mig - jag hade "signerat" i mitt huvud och tänkte -128. Tack.
kmarsh
2016-01-04 21:19:18 UTC
view on stackexchange narkive permalink

När motorn är igång ska spänningen spåra generatorns / spänningsregulatorns utgång (vilket också är batteriets laddningsspänning). När motorn inte går spårar den batterispänningen.

Jag kan bara spekulera i orsaken till det breda spänningsområdet. Oreglerad generatorutgång kan överstiga 48V, så det kan vara ett användbart diagnostiskt datum. Eller det kan bara vara en artefakt för den digitala kodningen att värdeområdet överstiger vad som är nödvändigt.

Om CMV når 65 + vdc, hur spårar det generatorspänningen? Det skulle helt steka ett batteri på nolltid. Det mesta som körs * bör * läsas vid generatoren är ~ 14vdc. Något för mycket förbi det och det är bye-bye-batteri.
@Paulster2 Jag uppdaterade mitt svar för att ta itu med dina frågor.
Sam
2016-01-04 21:49:53 UTC
view on stackexchange narkive permalink

Kontrollmodulens spänning är batterispänningen minus eventuella voltfall i ledningarna mellan batteriet och styrenheten. 65535 är ett fullständigt 16-bitarsregister. ECU kommer förmodligen att fungera med heltal (beräknar snabbare) men konverterar den slutliga utgången av dess beräkningar för OBD till "flytande punkt" eller "verklig" form (siffror som kan använda decimaler).

Anledningen det maximala är inte 65535, 6553.5 eller 655.35 är att med decimalpunkten placerad två från vänster tillåter den största noggrannhet i heltalets beräkningssteg samtidigt som den ger tillräckligt med platser till vänster om decimaltalet för att visa alla troliga värden. Det tillåter i huvudsak ECU att arbeta med tre decimaler i heltal. Kanske inte så viktigt för batterispänningen men jag antar att det är principen.

Det kanske inte har varit möjligt att artificiellt tillämpa ett maximivärde mindre än 65535 men även om det fanns ser jag ingen fördel att göra det.



Denna fråga och svar översattes automatiskt från det engelska språket.Det ursprungliga innehållet finns tillgängligt på stackexchange, vilket vi tackar för cc by-sa 3.0-licensen som det distribueras under.
Loading...