//FC21
U #Enable
SPBN noFB
= #C_LEnable
L #Funct
T #C_LFunct
L #IVAR1
T #C_LIVAR1
L #IVAR2
T #C_LIVAR2
L #Funct
T #C_LFunct
L P##S7Var
LAR1
L B [AR1,P#1.0]
T #C_Ltype
L W [AR1,P#2.0]
T #C_LnumberElements
L W [AR1,P#4.0]
T #C_LsubArea
L D [AR1,P#6.0]
T #C_Lmc7Ptr
L 21
T #C_LBlockNo
L 15
T #BpBlockNo
UC FB [#BpBlockNo]
L #C_LBlockFB15Return
L B#16#0
==I
SPBNB end
L #C_LErrCode
T #ErrCode
U #C_LError
= #Error
NOT
SAVE
BE
noFB: L B#16#0
T #ErrCode
R #Error
SAVE
end: BE
AGLink ist zum einen Lizenzpflichtig
wie stellst du dir denn vor von außen auf die SL zu kommen?anderseits geht AGLink doch auch über TCP/IP, oder?
wie stellst du dir denn vor von außen auf die SL zu kommen?
die DotNetSiemensPLCToolBoxLibrary nutzt doch auch nur TCP/IP für die Verbindung auf die 840D SL S7 (NC geht damit nicht)
also was hoffst/denkst/vermutest du wie erreichen zu können?
Hab mit der AGLink demo schon einzelne NC- sowie Antriebsmaschinendaten geschreiben, sowie ausgelesen.
und du willst einfach das gleiche mit DotNetSiemensPLCToolBoxLibrary, LibNoDave machen?
Problem: DotNetSiemensPLCToolBoxLibrary, LibNoDave implementieren NUR das S7 Protokoll - aber nicht das NCK-Protokoll
kann es sein das der FB15 das NCK-Protkoll spricht?
Ich verwende im Moment erfolgreich die "DotNetSiemensPLCToolBoxLibrary", welche mir auch recht gut gefällt. Zusätzlich kann im Fehlerfall oder implementieren zusätzlicher Funktionen einfach im Projekt nachgesehen werden, da Open Source und frei zugänglich über Github.
Dafür ist definitiv nichts in meiner Bibliothek implementiert. Hab auch noch nie an einer NC gearbeitet, und keine zum Testen zur verfügung, daher kann Ich da auch nichts implementieren.
Wobei es jetzt nicht der große Aufwand ist, das bei libnodave hinzuzufügen. Das sind vielleicht 20-30 Zeilen Code.
Ich komme an sowas zum Testen aber auch nicht ran.
void DECL2 daveAddNCKToReadRequest(PDU *p, int area, int unit, int column, int line, int module, int linecount) {
uc pa[] = {
0x12, 0x08, 0x82, /* VarSpec, Length, SyntaxId */
0x00, /* Area/Unit: 3 Bits Area, 5 Bits unit */
0x00, 0x00, /* column */
0x00, 0x00, /* line */
0x00, /* module */
0x01, /* linecount */
};
pa[3] = ((area & 0x07) << 5) | (unit & 0x1f);
pa[4] = column / 256;
pa[5] = column & 0xff;
pa[6] = line / 256;
pa[7] = line & 0xff;
pa[8] = module;
pa[9] = linecount;
p->param[1]++;
memcpy(p->param+p->plen, pa, sizeof(pa));
p->plen += sizeof(pa);
((PDUHeader2*)p->header)->plenHi = p->plen / 256;
((PDUHeader2*)p->header)->plenLo = p->plen % 256;
p->data = p->param+p->plen;
p->dlen = 0;
if (daveDebug & daveDebugPDU) {
daveDumpPDU(p);
}
}
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?