plcpeople / nodeS7

Node.JS library for communication to Siemens S7 PLCs
MIT License
356 stars 120 forks source link

Reading NC Variables from Sinumerik 840d #137

Open wjomo opened 1 year ago

wjomo commented 1 year ago

Hi plcpeople, thank you for your great work with the node-s7 libarary. It s a very powerful tool.

I have a question about reading NC-Variables from a Sinumerik 840d powerline / solutionline. Is it possible to implement such a function for reading out some variables from the NC-side of this controller.

I think it should be possible to establish a connection to the NC with the following settings, an communicate with the S7comm protocol:

Sinumerik 840d powerline with an MPI/Ethernetadapter: MPI-Adress from the NCU (default 3) Sinumerik 840d solutionline: Rack:0 slot:4

The structure of an NC Variable looks like this. It s encoded with die NC-Varseletor Tool from Siemens.

for example the following variable: /Channel/ProgramInfo/block[u,] Variable type: String

After building an .awl file from the NC Varselector it looks like this:

Ch1_ProgPfadName: STRUCT SYNTAX_ID : BYTE := B#16#82; bereich_u_einheit : BYTE := B#16#41; spalte : WORD := W#16#10; zeile : WORD := W#16#1; bausteintyp : BYTE := B#16#7D; ZEILENANZAHL : BYTE := B#16#1; typ : BYTE := B#16#3; laenge : BYTE := B#16#A0; END_STRUCT;

"Ch1_ProgPfadName" represents an alias name, which could be defined in the NC_Varselector.

That variable contains the actual name of the NC-program.

I think this .awl file from the NC-Varselector represents the memory area from the specific NC-variable.

I think it would be an great feature node-s7.

Please let me know what you think about it an the possibility of that feature.

Thanks for your help an have an nice day.