PLC通过智能网关实现HTTP协议通讯,先取得token后再提交JSON格式的数据文件

发布于:2025-07-02 ⋅ 阅读:(49) ⋅ 点赞:(0)

        智能网关IGT-DSER集成了多种PLC的原厂协议,方便实现各种PLC、智能仪表通过HTTP协议与MES等各种系统平台通讯对接。PLC内不用编写程序,通过网关的参数配置软件(下载地址)配置JSON文件的字段与PLC寄存器地址等参数即可。

        智能网关IGT-DSER支持POST/GET/PUT等多种方法,可同时作为HTTP协议的客户端和服务端,支持多设备同时接入智能网关,对接局域网的HTTP服务端时无需连接外网。

S7-HTTP.png

        IGT-DSER网关支持触发、周期、混合等多种工作模式:周期模式是按设置的周期时间提交请求和解析返回的文件;触发模式可配置一个或多个触发条件,网关根据触发条件的数据变化进行文件提交和下载解析;也可以两种模式同时配置运行。

        本案例是S7-1200/S7-1500的PLC(IP地址:192.168.2.111),先验证取得HTTP服务端的token后,再POST方式提交获取数据,按JSON格式通讯,服务端返回的数据写入到PLC寄存器。

        打开智能网关的参数配置软件(下载地址),进入数据配置表(功能->数据转发与平台对接,选   HTTP-GET/POST),根据PLC通讯地址,寄存器数量等结合用户手册(下载地址)的5.2章节配置相关参数。按数据配置表的 ‘任务组’ 分为 获取token 和 提交数据 两个组(任务组相同的值即为同一组,每组自动按上报跟下载打包成独立的JSON文件)。

        下图是 获取token 任务组(组号为1)的配置。‘上报xxx’为来自PLC或者智能网关内部,要打包发到HTTP服务端的数据;‘下载xxx’为来自HTTP服务端,要解析或者写入PLC寄存器的数据。数据号 0011 为获取到的token:

S71K-HTTP-TOKEN-1.png

         通过以上配置生成的JSON文件,以及接收的JSON文件如下:JSON格式配置举例

S71K-HTTP-TOKEN-2.png

        下图是 提交数据 任务组(组号为2)的配置,数据号 0013 为任务组1获取到的token:

S71K-HTTP-TOKEN-3.png

        通过以上任务组2配置生成的JSON文件,以及接收的JSON文件如下:

S71K-HTTP-TOKEN-4.png

        从以上配置可以看到,通过‘数据处理/初始值’ 可以实现简单的数据处理,还可支持更多的数据处理功能,具体如下:

        1. 限定字符串的长度:当数据类型设置为字符串即CHAR[n]时,限定字符串的最大字符数,如‘[n=24]’,范围1~128;

        2. 限定小数的位数: 当数据类型设置为浮点数即REAL/LREAL时,指定小数的位数,如保留3位小数‘[.03]’,范围01~06;

        3. 对数据进行单运算符的运算:支持加减乘除和整除(+-*/\),例如当前值要除以100,则输入‘[/100]’;

        4. 无符号整数类型的10进制数据转为16进制:例如当前值12345678,输入‘[.x]’,则转为bc614e,输入‘[.X]’,则转为BC614E;

        5. 触发模式数据对接的附加条件: 例如输入‘[==]100’,同时勾选‘变化判断’,这样如果该数据的当前值不等于100,即使该任务组的其它触发条件满足也不会执行;支持[==] 、[<>]、[<=]、[>=]共4种判断方式;

        6. 将数据转为字符串并进行组合:例如从PLC内读到的当前数据为100,输入‘[#count=**pcs]’,则当前数据按count=100pcs 处理;

        7. 将多种数值替换为对应的字符串:例如设置为‘[#@0=离线|1=待机|2=运行|3=故障|其它值]’时,当这行配置对应的PLC寄存器的数值≥0、≤3时,根据数值分别取字符串‘离线’‘待机’‘运行’‘故障’,超出这个范围则替换为‘其它值’。

        8. JSON字符串打包:采用MQTT或HTTP协议时,例如输入‘${JS01}’,则将后面数据配置表中所有字段类别为‘数值读取’、字段名称为‘JS01’的数据按配置顺序组合成一个字符串;

        9. 复制其它数据的数值:例如输入‘$(barcode)’,则该数据的数值随数据配置表中名称为‘barcode’的数据实时更新;

        10. 根据当前行的特殊前后缀的字段名称,初始值配置完成特定功能:

            ⑴. 对接数据库时在SQL命令语句中增加条件字符串:字段类别为条件字段、字段名称设置为‘${condition}’时在初始值输入需要合并到SQL语句中的字符串,在自动生成SQL语句时将该字符串合并到SQL语句中。

            ⑵. 设备扩展参数的参数值设置,例如:字段名称设置为‘${address}’时在此输入‘104180050001’,则将该行数据所对应的设备的参数address设置为104180050001;

        11.其它功能函数,具体如下:

            ⑴. 当前行数值的字节顺序调整‘$EXWB(11)’,括号内第一个数字是交换高低字,第二个数字是交换高低字节,共有10、01、11三种组合,其它数值无效。

            ⑵. 当前行字符串的顺序调整‘$SORD(1)’,括号内可设 1~6 的数字,具体含义同<字符顺序>参数内的选项一一对应。

            ⑶. 获取本组的设备通讯状态值,写入到当前行所对应的数据地址‘$RDSD()’,括号内为空。

            ⑷. 获取本组的数据上报平台对接的状态值,写入到当前行所对应的数据地址‘$RDSS()’,括号内为空。

        除了上述西门子PLC外,网关也支持罗克韦尔(AB)、欧姆龙、三菱,以及GE、倍福、艾默生等几乎所有PLC品牌。


网站公告

今日签到

点亮在社区的每一天
去签到