[{"data":1,"prerenderedAt":88},["ShallowReactive",2],{"integration-node-red-contrib-s7\u002F":3},{"_id":4,"categories":5,"author":9,"description":11,"npmOwners":12,"npmScope":18,"name":4,"ffCertified":19,"downloads":20,"version":22,"updatedAt":23,"maintainers":24,"homepage":35,"bugs":36,"repository":38,"time":41,"lastUpdated":23,"created":42,"license":84,"githubOwner":85,"githubRepo":4,"examples":86,"readme":87},"node-red-contrib-s7",[6,7,8],"catalogue_hardware","catalogue_industrial","catalogue",{"name":10},"ST-One Ltda.","A Node-RED node to interact with Siemens S7 PLCs",[13,14,15,16,17],"gfcittolin","machadotiago","daniel.michalichyn","fernandoamorim","julia-zamith_schwartz",null,true,{"week":21},5436,"3.1.3","2026-01-15T13:09:54.077Z",[25,27,29,31,33],{"name":13,"email":26},"gfcittolin@gmail.com",{"name":14,"email":28},"machado.ti@gmail.com",{"name":15,"email":30},"daniel.michalichyn@outlook.com",{"name":16,"email":32},"fernandogabriel1703@gmail.com",{"name":17,"email":34},"juliazamiths@gmail.com","https:\u002F\u002Fgithub.com\u002Fst-one-io\u002Fnode-red-contrib-s7#readme",{"url":37},"https:\u002F\u002Fgithub.com\u002Fst-one-io\u002Fnode-red-contrib-s7\u002Fissues",{"type":39,"url":40},"git","git+https:\u002F\u002Fgithub.com\u002Fst-one-io\u002Fnode-red-contrib-s7.git",{"created":42,"modified":23,"0.1.0":42,"0.1.1":43,"0.2.0":44,"0.2.1":45,"0.2.2":46,"0.2.3":47,"0.2.4":48,"1.0.0":49,"1.0.1":50,"1.1.0":51,"1.1.1":52,"1.1.2":53,"1.2.0":54,"1.3.0":55,"1.3.1":56,"1.4.0":57,"1.4.1":58,"1.5.0":59,"1.5.1":60,"1.5.2":61,"1.5.3":62,"1.5.4":63,"1.6.0":64,"1.6.1":65,"1.6.2":66,"1.6.3":67,"2.0.0":68,"2.0.1":69,"2.0.2":70,"2.1.0":71,"2.1.1":72,"2.2.0":73,"2.2.1":74,"3.0.0-beta.1":75,"2.2.2":76,"3.0.0-beta.2":77,"3.0.0-beta.3":78,"3.0.0":79,"3.1.0":80,"3.1.1":81,"3.1.2":82,"3.1.3":83},"2016-06-20T20:12:26.943Z","2016-07-26T16:15:42.736Z","2016-11-14T15:50:52.031Z","2016-11-14T16:04:16.185Z","2016-11-30T17:44:30.006Z","2017-01-01T10:22:37.580Z","2017-03-30T23:32:34.876Z","2017-03-31T00:15:10.186Z","2017-04-16T05:02:27.004Z","2017-04-21T15:07:49.544Z","2017-04-27T14:49:28.245Z","2017-06-04T11:51:55.756Z","2017-06-09T15:28:45.852Z","2017-06-09T15:59:05.980Z","2017-08-22T14:07:59.413Z","2017-09-18T01:27:21.668Z","2017-11-16T16:40:24.181Z","2018-03-02T22:11:21.913Z","2018-03-19T21:50:04.665Z","2018-10-29T23:41:52.137Z","2019-01-17T19:53:53.863Z","2019-02-15T20:29:48.410Z","2019-03-14T18:54:25.828Z","2019-07-09T14:21:09.635Z","2019-07-18T14:40:08.365Z","2019-07-19T18:11:40.584Z","2019-08-02T16:44:58.190Z","2019-08-06T16:25:36.192Z","2019-08-20T16:48:25.668Z","2019-11-26T17:31:16.769Z","2020-01-13T13:08:18.372Z","2020-05-23T23:30:38.358Z","2020-05-24T22:45:54.897Z","2020-10-19T20:59:05.704Z","2020-10-19T23:54:20.171Z","2020-10-19T23:55:29.224Z","2020-10-23T14:54:13.355Z","2020-12-09T17:27:03.002Z","2022-01-20T12:56:32.867Z","2025-08-25T13:55:56.913Z","2025-12-18T15:04:32.707Z","2026-01-15T13:09:53.863Z","GPL-3.0-or-later","st-one-io",[],"\u003Ch1 id=\"node-red-contrib-s7\">\u003Ca class=\"header-anchor\" href=\"#node-red-contrib-s7\">node-red-contrib-s7\u003C\u002Fa>\u003C\u002Fh1>\n\u003Cp>A Node-RED node to interact with Siemens S7 PLCs.\u003C\u002Fp>\n\u003Cp>This node was created as part of the \u003Ca href=\"https:\u002F\u002Fst-one.io\">ST-One\u003C\u002Fa> project.\u003C\u002Fp>\n\u003Ch2 id=\"install\">\u003Ca class=\"header-anchor\" href=\"#install\">Install\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>You can install this node directly from the \"Manage Palette\" menu in the Node-RED interface.\u003C\u002Fp>\n\u003Cp>Alternatively, run the following command in your Node-RED user directory - typically \u003Ccode>~\u002F.node-red\u003C\u002Fcode> on Linux or \u003Ccode>%HOMEPATH%\\.nodered\u003C\u002Fcode> on Windows\u003C\u002Fp>\n\u003Cpre>\u003Ccode>    npm install node-red-contrib-s7\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>NodeJS version 10 or greater and Node-RED version 1.0 or greater is required.\u003C\u002Fp>\n\u003Ch2 id=\"usage\">\u003Ca class=\"header-anchor\" href=\"#usage\">Usage\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>Each connection to a PLC is represented by the \u003Cstrong>S7 Endpoint\u003C\u002Fstrong> configuration node. You can configure the PLC's Address, the variables available and their addresses, and the cycle time for reading the variables.\u003C\u002Fp>\n\u003Cp>The \u003Cstrong>S7 In\u003C\u002Fstrong> node makes the variable's values available in a flow in three different modes:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Single variable:\u003C\u002Fstrong> A single variable can be selected from the configured variables, and a message is sent every cycle, or only when it changes if \u003Cem>diff\u003C\u002Fem> is checked. \u003Ccode>msg.payload\u003C\u002Fcode> contains the variable's value and \u003Ccode>msg.topic\u003C\u002Fcode> has the variable's name.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>All variables, one per message:\u003C\u002Fstrong> Like the \u003Cem>Single variable\u003C\u002Fem> mode, but for all variables configured. If \u003Cem>diff\u003C\u002Fem> is checked, a message is sent everytime any variable changes. If \u003Cem>diff\u003C\u002Fem> is unchecked, one message is sent for every variable, in every cycle. Care must be taken about the number of messages per second in this mode.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>All variables:\u003C\u002Fstrong> In this mode, \u003Ccode>msg.payload\u003C\u002Fcode> contains an object with all configured variables and their values. If \u003Cem>diff\u003C\u002Fem> is checked, a message is sent if at least one of the variables changes its value.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3 id=\"variable-addressing\">\u003Ca class=\"header-anchor\" href=\"#variable-addressing\">Variable addressing\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>The variables and their addresses configured on the \u003Cstrong>S7 Endpoint\u003C\u002Fstrong> follow a slightly different scheme than used on Step 7 or TIA Portal. Here are some examples that may guide you on addressing your variables:\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Address\u003C\u002Fth>\n\u003Cth>Step7 equivalent\u003C\u002Fth>\n\u003Cth>JS Data type\u003C\u002Fth>\n\u003Cth>Description\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>\u003Ccode>DB5,X0.1\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>DB5.DBX0.1\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Boolean\u003C\u002Ftd>\n\u003Ctd>Bit 1 of byte 0 of DB 5\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>DB23,B1\u003C\u002Fcode> or \u003Ccode>DB23,BYTE1\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>DB23.DBB1\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Number\u003C\u002Ftd>\n\u003Ctd>Byte 1 (0-255) of DB 23\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>DB100,C2\u003C\u002Fcode> or \u003Ccode>DB100,CHAR2\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>DB100.DBB2\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>String\u003C\u002Ftd>\n\u003Ctd>Byte 2 of DB 100 as a Char\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>DB42,I3\u003C\u002Fcode> or \u003Ccode>DB42,INT3\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>DB42.DBW3\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Number\u003C\u002Ftd>\n\u003Ctd>Signed 16-bit number at byte 3 of DB 42\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>DB57,WORD4\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>DB57.DBW4\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Number\u003C\u002Ftd>\n\u003Ctd>Unsigned 16-bit number at byte 4 of DB 57\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>DB13,DI5\u003C\u002Fcode> or \u003Ccode>DB13,DINT5\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>DB13.DBD5\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Number\u003C\u002Ftd>\n\u003Ctd>Signed 32-bit number at byte 5 of DB 13\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>DB19,DW6\u003C\u002Fcode> or \u003Ccode>DB19,DWORD6\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>DB19.DBD6\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Number\u003C\u002Ftd>\n\u003Ctd>Unsigned 32-bit number at byte 6 of DB 19\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>DB21,R7\u003C\u002Fcode> or \u003Ccode>DB21,REAL7\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>DB21.DBD7\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Number\u003C\u002Ftd>\n\u003Ctd>Floating point 32-bit number at byte 7 of DB 21\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>DB2,S7.10\u003C\u002Fcode>*\u003C\u002Ftd>\n\u003Ctd>-\u003C\u002Ftd>\n\u003Ctd>String\u003C\u002Ftd>\n\u003Ctd>String of length 10 starting at byte 7 of DB 2\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>I1.0\u003C\u002Fcode> or \u003Ccode>E1.0\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>I1.0\u003C\u002Fcode> or \u003Ccode>E1.0\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Boolean\u003C\u002Ftd>\n\u003Ctd>Bit 0 of byte 1 of input area\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>Q2.1\u003C\u002Fcode> or \u003Ccode>A2.1\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>Q2.1\u003C\u002Fcode> or \u003Ccode>A2.1\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Boolean\u003C\u002Ftd>\n\u003Ctd>Bit 1 of byte 2 of output area\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>M3.2\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>M3.2\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Boolean\u003C\u002Ftd>\n\u003Ctd>Bit 2 of byte 3 of memory area\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>IB4\u003C\u002Fcode> or \u003Ccode>EB4\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>IB4\u003C\u002Fcode> or \u003Ccode>EB4\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Number\u003C\u002Ftd>\n\u003Ctd>Byte 4 (0 -255) of input area\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>QB5\u003C\u002Fcode> or \u003Ccode>AB5\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>QB5\u003C\u002Fcode> or \u003Ccode>AB5\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Number\u003C\u002Ftd>\n\u003Ctd>Byte 5 (0 -255) of output area\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>MB6\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>MB6\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Number\u003C\u002Ftd>\n\u003Ctd>Byte 6 (0 -255) of memory area\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>IC7\u003C\u002Fcode> or \u003Ccode>EC7\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>IB7\u003C\u002Fcode> or \u003Ccode>EB7\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>String\u003C\u002Ftd>\n\u003Ctd>Byte 7 of input area as a Char\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>QC8\u003C\u002Fcode> or \u003Ccode>AC8\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>QB8\u003C\u002Fcode> or \u003Ccode>AB8\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>String\u003C\u002Ftd>\n\u003Ctd>Byte 8 of output area as a Char\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>MC9\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>MB9\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>String\u003C\u002Ftd>\n\u003Ctd>Byte 9 of memory area as a Char\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>II10\u003C\u002Fcode> or \u003Ccode>EI10\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>IW10\u003C\u002Fcode> or \u003Ccode>EW10\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Number\u003C\u002Ftd>\n\u003Ctd>Signed 16-bit number at byte 10 of input area\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>QI12\u003C\u002Fcode> or \u003Ccode>AI12\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>QW12\u003C\u002Fcode> or \u003Ccode>AW12\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Number\u003C\u002Ftd>\n\u003Ctd>Signed 16-bit number at byte 12 of output area\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>MI14\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>MW14\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Number\u003C\u002Ftd>\n\u003Ctd>Signed 16-bit number at byte 14 of memory area\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>IW16\u003C\u002Fcode> or \u003Ccode>EW16\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>IW16\u003C\u002Fcode> or \u003Ccode>EW16\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Number\u003C\u002Ftd>\n\u003Ctd>Unsigned 16-bit number at byte 16 of input area\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>QW18\u003C\u002Fcode> or \u003Ccode>AW18\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>QW18\u003C\u002Fcode> or \u003Ccode>AW18\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Number\u003C\u002Ftd>\n\u003Ctd>Unsigned 16-bit number at byte 18 of output area\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>MW20\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>MW20\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Number\u003C\u002Ftd>\n\u003Ctd>Unsigned 16-bit number at byte 20 of memory area\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>IDI22\u003C\u002Fcode> or \u003Ccode>EDI22\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>ID22\u003C\u002Fcode> or \u003Ccode>ED22\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Number\u003C\u002Ftd>\n\u003Ctd>Signed 32-bit number at byte 22 of input area\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>QDI24\u003C\u002Fcode> or \u003Ccode>ADI24\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>QD24\u003C\u002Fcode> or \u003Ccode>AD24\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Number\u003C\u002Ftd>\n\u003Ctd>Signed 32-bit number at byte 24 of output area\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>MDI26\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>MD26\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Number\u003C\u002Ftd>\n\u003Ctd>Signed 32-bit number at byte 26 of memory area\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>ID28\u003C\u002Fcode> or \u003Ccode>ED28\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>ID28\u003C\u002Fcode> or \u003Ccode>ED28\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Number\u003C\u002Ftd>\n\u003Ctd>Unsigned 32-bit number at byte 28 of input area\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>QD30\u003C\u002Fcode> or \u003Ccode>AD30\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>QD30\u003C\u002Fcode> or \u003Ccode>AD30\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Number\u003C\u002Ftd>\n\u003Ctd>Unsigned 32-bit number at byte 30 of output area\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>MD32\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>MD32\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Number\u003C\u002Ftd>\n\u003Ctd>Unsigned 32-bit number at byte 32 of memory area\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>IR34\u003C\u002Fcode> or \u003Ccode>ER34\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>IR34\u003C\u002Fcode> or \u003Ccode>ER34\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Number\u003C\u002Ftd>\n\u003Ctd>Floating point 32-bit number at byte 34 of input area\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>QR36\u003C\u002Fcode> or \u003Ccode>AR36\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>QR36\u003C\u002Fcode> or \u003Ccode>AR36\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Number\u003C\u002Ftd>\n\u003Ctd>Floating point 32-bit number at byte 36 of output area\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>MR38\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>MR38\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Number\u003C\u002Ftd>\n\u003Ctd>Floating point 32-bit number at byte 38 of memory area\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>DB1,DT0\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>-\u003C\u002Ftd>\n\u003Ctd>Date**\u003C\u002Ftd>\n\u003Ctd>A timestamp in the DATE_AND_TIME format\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>DB1,DTZ10\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>-\u003C\u002Ftd>\n\u003Ctd>Date**\u003C\u002Ftd>\n\u003Ctd>A timestamp in the DATE_AND_TIME format, in UTC\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>DB2,DTL2\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>-\u003C\u002Ftd>\n\u003Ctd>Date**\u003C\u002Ftd>\n\u003Ctd>A timestamp in the DTL format\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>DB2,DTLZ12\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>-\u003C\u002Ftd>\n\u003Ctd>Date**\u003C\u002Ftd>\n\u003Ctd>A timestamp in the DTL format, in UTC\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>DB57,RWORD4\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>DB57.DBW4\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Number\u003C\u002Ftd>\n\u003Ctd>Unsigned 16-bit number at byte 4 of DB 57, interpreted as Little-Endian\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>DB13,RDI5\u003C\u002Fcode> or \u003Ccode>DB13,RDINT5\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>DB13.DBD5\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Number\u003C\u002Ftd>\n\u003Ctd>Signed 32-bit number at byte 5 of DB 13, interpreted as Little-Endian\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>MRW20\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>MW20\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Number\u003C\u002Ftd>\n\u003Ctd>Unsigned 16-bit number at byte 20 of memory area, interpreted as Little-Endian\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cul>\n\u003Cli>*) Note that strings on the PLC uses 2 extra bytes at start for size\u002Flength of the string\u003C\u002Fli>\n\u003Cli>**) Note that javascript's \u003Ccode>Date\u003C\u002Fcode> are \u003Cem>always\u003C\u002Fem> represented in UTC. Please use other nodes like \u003Ca href=\"https:\u002F\u002Fflows.nodered.org\u002Fnode\u002Fnode-red-contrib-moment\">node-red-contrib-moment\u003C\u002Fa> to properly handle type conversions\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3 id=\"notes-on-s7-1200%2F1500\">\u003Ca class=\"header-anchor\" href=\"#notes-on-s7-1200%2F1500\">Notes on S7-1200\u002F1500\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>These newer PLCs offer an \"extended\" version of the S7 Protocol, while we have only a \"basic\" version of it.\u003C\u002Fp>\n\u003Cp>Therefore, some additional configuration steps on the PLC are necessary:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\"Optimized block access\" must be disabled for the DBs we want to access (\u003Ca href=\"http:\u002F\u002Fsnap7.sourceforge.net\u002Fsnap7_client_file\u002Fdb_1500.bmp\">image\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>In the \"Protection\" section of the CPU Properties, enable the \"Permit access with PUT\u002FGET\" checkbox (\u003Ca href=\"http:\u002F\u002Fsnap7.sourceforge.net\u002Fsnap7_client_file\u002Fcpu_1500.bmp\">image\u003C\u002Fa>)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3 id=\"notes-on-logo!-8\">\u003Ca class=\"header-anchor\" href=\"#notes-on-logo!-8\">Notes on Logo! 8\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>On the newest Logo! 8.FS4 (and possibly 0BA8) Logic modules there is no need to set the Mode to TSAP any more, instead the default Rack\u002FSlot value of 0\u002F2 works just fine.\u003C\u002Fp>\n\u003Cp>The following table shows memory areas accessible without additional settings in the controller program:\u003C\u002Fp>\n\u003Cp>\u003Cem>Note: These memory areas seem to be read-only from outside the controller, as they are directly used by the function blocks listed in \"Logo Block\" of the table\u003C\u002Fem>\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Logo Block\u003C\u002Fth>\n\u003Cth>Logo VM Range\u003C\u002Fth>\n\u003Cth>example Node-RED address\u003C\u002Fth>\n\u003Cth>Description\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>\u003Ccode>I\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>1024 - 1031\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>DB1,BYTE1024\u003C\u002Fcode> or \u003Ccode>DB1,X1024.5\u003C\u002Fcode> or \u003Ccode>DB1,WORD1024\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Reads input terminals 1...8 or 6 or 1...16\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>AI\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>1032 - 1063\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>DB1,WORD1032\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Reads analog input terminal 1. Always word sized.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>Q\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>1064 - 1071\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>DB1,BYTE1064\u003C\u002Fcode> or \u003Ccode>DB1,X1064.5\u003C\u002Fcode> or \u003Ccode>DB1,WORD1064\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Reads output terminals 1...8 or 6 or 1...16\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>AQ\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>1072 - 1103\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>DB1,WORD1072\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Reads analog output terminal 1. Always word sized.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>M\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>1104 - 1117\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>DB1,BYTE1104\u003C\u002Fcode> or \u003Ccode>DB1,X1104.5\u003C\u002Fcode> or \u003Ccode>DB1,WORD1104\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Reads bit flags M1...M8 or M6 or M1...16\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>AM\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>1118 - 1245\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>DB1,WORD1118\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Reads analog flag 1. Always word sized.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>NI\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>1246 - 1061\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>DB1,BYTE1246\u003C\u002Fcode> or \u003Ccode>DB1,X1246.5\u003C\u002Fcode> or \u003Ccode>DB1,WORD1246\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Reads network input 1...8 or 6 or 1...16\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>NAI\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>1262 - 1389\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>DB1,WORD1262\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Reads analog network input 1. Always word sized.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>NQ\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>1390 - 1405\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>DB1,BYTE1390\u003C\u002Fcode> or \u003Ccode>DB1,X1390.5\u003C\u002Fcode> or \u003Ccode>DB1,WORD1390\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Reads network output 1...8 or 6 or 1...16\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>NAQ\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>1406 - 1469\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>DB1,WORD1406\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Reads network output 1. Always word sized.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>On the other hand, Logo memory areas VM 0-849 are mutable from outside the controller, but they need to be mapped into the Logo program. Without mapping, data written into these addresses will have no effect on program execution. Used VM addresses in the range mentioned above can be read\u002Fwritten from\u002Finto in the Logo program using the \"Network\" function blocks (in the function block setup use the \u003Cem>\"Local variable memory (VM)\"\u003C\u002Fem> option to map VMs to the function block).\u003C\u002Fp>\n\u003Cp>Some addressing examples:\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Logo VM\u003C\u002Fth>\n\u003Cth>Example Node-RED address\u003C\u002Fth>\n\u003Cth>Description\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>\u003Ccode>0\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>DB1,BYTE0\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>R\u002FW access\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>1\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>DB1,X1.3\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>R\u002FW access Note: use booleans\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>2..3\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>DB1,WORD2\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>R\u002FW access\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>4..7\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>DB1,DWORD4\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>R\u002FW access\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Ch2 id=\"bugs-and-enhancements\">\u003Ca class=\"header-anchor\" href=\"#bugs-and-enhancements\">Bugs and enhancements\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>Please share your ideas and experiences on the \u003Ca href=\"https:\u002F\u002Fdiscourse.nodered.org\u002F\">Node-RED forum\u003C\u002Fa>, or open an issue on the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fst-one-io\u002Fnode-red-contrib-s7\">page of the project on GitHub\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch2 id=\"support\">\u003Ca class=\"header-anchor\" href=\"#support\">Support\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>Community support is offered on a best-effort basis via GitHub Issues. For commercial support, please contact us by sending an e-mail to \u003Ca href=\"mailto:st-one@st-one.io\">st-one@st-one.io\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch2 id=\"license\">\u003Ca class=\"header-anchor\" href=\"#license\">License\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>Copyright: (c) 2016-2022, ST-One Ltda., Guilherme Francescon Cittolin \u003Ca href=\"mailto:guilherme@st-one.io\">guilherme@st-one.io\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>GNU General Public License v3.0+ (see \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fst-one-io\u002Fnode-red-contrib-s7\u002Fblob\u002Fmaster\u002FLICENSE\">LICENSE\u003C\u002Fa> or https:\u002F\u002Fwww.gnu.org\u002Flicenses\u002Fgpl-3.0.txt)\u003C\u002Fp>\n",1782217758908]