-Menü

Beiträge anzeigen

Dieser Abschnitt erlaubt es Ihnen, alle Beiträge anzusehen, die von diesem Mitglied geschrieben wurden. Beachten Sie, dass Sie nur Beiträge sehen können, die in Teilen des Forums geschrieben wurden, auf die Sie aktuell Zugriff haben.

Beiträge anzeigen-Menü

Beiträge - shrimps

#16
Hi,
nimm auf keinen Fall eine RS232 SPS.
Ist ja uralt !
Mind. BC9xxx mit Ethernet !
Ich habe mittlerweile den 3.ten BC9000 als Spielzeug im Einsatz !
Alles in der Bucht geschossen, zw. 50,- und 100,- je nach Wetter :)

Die HD-Klemmen scheinen gut zu sein, da ich immer gebrauchte nehme, gibt es dort nur die preiswerteren 8er KL14 / kl21
Muss man für sich rechnen...
Ich persönlich fand die Verkabelung bei den HD etwas "eng"...

Da es auch 5v-Eingangsklemmen gibt, habe ich testweise mal einige Chinasensoren mit 5V-Pegel getestet > Prima.
M.E. sind die PT-Klemmen von Beckhoff deutlich günstiger als die Wagos.
Ich habe an meiner Pelletsteuerung momentan 8 PT1000 an 2 Kl3204 dran.
Die PT1000 haben im 10er Pack 60,- gekostet.

Also es geht auch preiswert und die Ausfallsicherheit kann man ja selber durch die Menge an Ersatzteilen bestimmen...

Viel Spaß
Shrimps

#17
Hi,
wenn du die Differenzzeit nicht benötigst, sondern nuir den Vergleich, dann ist es ja supereasy:


Viel Spaß

[gelöscht durch Administrator]
#18
Modulentwicklung / Re: SPS steuern per http request
14. Oktober 2016, 18:25:50
Hi Transalpler,
ich habe hier von Wago was gesichtet...
[url]http://www.wago.com/wagoweb/documentation/app_note/a1122/a112200d.pdf/url]

Könnte der Server-State das sein, was du suchst ?

Viel Spaß
Shrimps
#19
Moin,
nein, leider musst du das einzeln machen oder im Deklarationsteil sofort alle Festlegen:
https://infosys.beckhoff.com/index.php?content=../content/1031/tcplccontrol/html/TcPlcCtrl_ARRAY.htm&id=

Viel Spaß
Shrimps
#20
Hallo philipp,
ich bin auch erst seit 1,5 Jahren in die SPS-Welt eingestiegen.
Bin sonst in der Mysql / Script / diverse Welt unterwegs.
Da ich aber früher eine techn. Ausbildung genossen hatte mit programmierbaren Steuerungen (HP-Laborsysteme etc)
kannte ich diese Welt ein wenig.

Nun macht es mir extrem viel Spaß so kleine SPS´sen at Home zu "quälen"...
Siehe Fischertechnik Roboter von mir und mene Pelletheizungssteuerung.
Aktuell möchte ich einen 6-achsen Roboterarm (ebay saintsmart) via serieller Schnittstelle steuern.
RC-Servo hört schon auf die ersten Kommandos...
Zusätzlich habe ich gerade erfolgreich mein tcl-Script auf meiner Homeatic dazu gebracht mir meine Ventilöffnungen via Modbus in meine SPS zu schreiben.

Was man da alles falsch machen kann... 8)

LG
Shrimps
#21
Habe das mal nachgestellt:
System: Twincat 2.x (identisch mit Codesys 2.x)

PROGRAM MAIN
VAR
Test: DT:=DT#2013-01-01-00:00:00;
timestamp_Test: DWORD;
druck : STRING;
END_VAR

timestamp_Test := DT_TO_DWORD(Test);
druck := DWORD_TO_STRING(timestamp_Test);


Viel Spaß
Shrimps


[gelöscht durch Administrator]
#22
Hi,
mühsam ernährt sich das Eichhörnchen:
Die Funktion FIX ist ggf. auch eine OSCAT-Funktion, also einbinden...
Ich habe mir den Code der dword_to_strf mal angesehen:
Ich glaube, für deinen Lernvorgang ist ggf. eine andere Option drin:
Du wandeslt das DWORD in einen String um, schau mal womit du es machst, egal womit...
Nun kannst du entscheiden, ob er dir so schon reicht oder er eine feste Länge benötigt.
Falls er vorne oder hinten aufegfüllt werden muss, so empfehle ich dir CONCAT.
Der ist allgemein bekannt und mit dem bekommst du das hin...

Viel Erfolg
Shrimps
#25
Hallo,
wäre ja prima, wenn der eine oder andere das zusätzlich implemtiert.
Bei mir kam nur die Impulszeitmessung zum tragen, da mein Testsystem viel zu wenig Impulse pro Minute bringt,
ggf. alle paar Minuten einen Impuls...

Gerne Feedback

PS: Wago-Lib gut und schön aber wenn man (ich) kein Wago hat ist es wenig prickelnd

LG
Shrimps
#26
Hallo WDD123,
bei der Wago-Mysql kann ich dir leider nicht helfen, bin bei Beckhoff unterwegs und da hatte ich den Mysql am laufen...

Aber deine Frage wegen Echtzeit CMS:

Was verstehst du unter CMS (Customer Management System ?) ?
Wenn ja, bist du sicher, das du Echtzeit haben willst ?
I.d.R. haben CMS nur verwaltenden Character und keine Echtzeitfunktionen.
Nicht zu verwechseln mit sicheren Transaktionen...

Ein möglicher Ansatz, Messdaten in einem "fremden" System zu visualisieren ist meistens Modbus !

Viel Erfolg
LG Shrimps

#27
Hi,
habe mir vor kurzem einen für meinen Minizähler gebaut, allerdings in ST fürTwincat.

Sollte aber sehr leicht zu konvertieren sein...

Gruss
Shrimps


FUNCTION_BLOCK _fbStromzaehler
(* Einen S0-Impuls eines Strommessers lesen:
Liefert 1000 Impulse / KWh, 1Imp= 1Wh *)
VAR_INPUT
bSignal : BOOL; (* Unser S0-Impuls *)
END_VAR
VAR_OUTPUT
rLeistung : REAL; (* Die Momentanleistung zw. 2 Messungen *)
dVerbrauch : DWORD; (* Saldierter Verbrauch in Wh *)
dSignalPeriode : DWORD; (* Zeit in ms zwischen zwei Impulsen *)
dSignalDauer : DWORD; (* Laufzeit des Impulses *)
END_VAR
VAR
tx : TIME; (* Aktuelle Systemzeit in ms *)
tStart : TIME; (* Impulsbeginn *)
tEnde1 : TIME; (* Ende einer Periode *)
tEnde2 : TIME; (* Ende eine einzelnen Impulses *)
bInit : BOOL := TRUE; (* Aller Anfang *)
bFlanke : BOOL; (* Flankenmerker als Ersatz für RTRIG *)
END_VAR
(* @END_DECLARATION := '0' *)
tx := TIME(); (* Zeit merken *)

IF bInit  THEN (* Am Anfang: *)
tStart := tx; (* Startzeit einmalig Init *)
bInit := FALSE; (* Init Fertig ! *)
END_IF

IF bSignal AND NOT bFlanke THEN (* Wenn Signal kommt *)

dVerbrauch := dVerbrauch +1; (* Summenverbrauch *)

tEnde1 := tx; (* Periodendauer-Endezeit merken *)
dSignalPeriode := TIME_TO_DWORD(tEnde1) - TIME_TO_DWORD(tStart); (* Delta bilden *)
rLeistung := 3600000.0 / dSignalPeriode; (* Leistung auf WattStunden skalieren *)
rLeistung := DINT_TO_REAL(REAL_TO_DINT(rLeistung * 10)) / 10; (* 1 Stelle nach dem Komma runden *)
tStart := tx; (* Neue Startzeit merken *)

END_IF

IF NOT bSignal AND bFlanke THEN (* Signal fällt ab *)
tEnde2 := tx; (* Endezeit merken *)
dSignalDauer := TIME_TO_DWORD(tEnde2) - TIME_TO_DWORD(tStart);
END_IF

bFlanke := bSignal; (* Merker für Signalflanke *)

END_FUNCTION_BLOCK

#28
Hallo Steinbichler,
wo kann man ggf. den Status der Beckhoff Leute einsehen ?

LG
Shrimps
#29
Sounds very good...

So waiting for the next  :)
#30
Hmm,
drives me crazy:
Which IDE do you use (please full qualified)
Show me the full source !

Heres my example which works fine:

PROGRAM MAIN
VAR
myTimer: TON;
increasePressureValue: DINT;
END_VAR

myTimer(IN := NOT myTimer.Q, PT := T#1s);

IF increasePressureValue <= 600000 AND myTimer.Q THEN
   increasePressureValue := increasePressureValue + 10000;
END_IF

END_PROGRAM


Regards
Shrimps