设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
S7-1200/1500的Http通信
返回列表
发新帖
[西门子]
S7-1200/1500的Http通信
[复制链接]
51003
|
0
|
2024-5-5 11:12:23
|
显示全部楼层
|
阅读模式
概述
随着工业4.0及智能制造的推进,现代工业生产对自动化系统及信息化系统的要求越来越高,不同系统之间的数据交互也越来越普遍。但是自动化和信息化一直以来是两个不同的领域,协议并不通用,长期以来一直以OPC占据主流。以SIEMENS系列PLC来看,控制系统之间数据交互用的比较多的是S7、Modbus、Socket这些常规协议。但是和MES通信大多使用的是KepServer这类网关转成OPC协议,或者如果有上位机的话,则由组态软件作为OPC SERVER。
HTTP通信
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是一个基于TCP/IP的通信协议,用来传递数据(HTML文件), 图片文件, 查询结果等。通常我们用浏览器上网浏览的信息就是通过HTTP协议从后台返回的数据。
HTTP协议工作于客户端-服务端架构上,我们编写的用来响应请求的后台应用程序通常作为HTTP SERVER,而用来查询等操作的客户端或者浏览器则作为HTTP CLIENT。
LHTTP指令
LHTTP是SIEMENS提供的一个开放式通信指令,用以将S7-1200/1500作为HTTP Client接入到HTTP Server。它支持GET、POST和PUT方法,对于和第三方系统的非实时数据交换非常方便。如前所述,因为很多信息化系统并不支持S7、Modbus这些工控行业的通信协议,但是基本都会支持HTTP通信,这为将控制系统接入到信息化系统提供了另一种选择。
LHTTP指令集包含了LHTTP_Get和LHTTP_PostPut两个主要指令,分别对应Get、Post与Put方法。下面以Get方法为例,简单介绍下LHTTH指令集的使用。首先拖一个LHTTP_Get指令到程序里,并分配好参数。
上图中的“http://192.168.6.89:8080/hello”是服务端提供的一个RESTful风格的API。其中192.168.6.89是服务器的IP地址,8080是HTTP SERVER绑定的端口号。
至于其它引脚参数定义,可以查看帮助文件。
HTTP SERVER
这里我们使用C#搭建了一个简单的HTTP SERVER,它提供了几个简单的API用于测试。
需要注意的是LHTTP指令中填写的端口号要和HTTP SERVER中绑定的一致。
下载程序到PLC(如果没有物理PLC,也可以使用S7-PLCSIM Advanced),运行C#程序,当我们触发PLC侧的HTTP请求时,会看到返回的数据。
应用场景
HTTP适用于和第三方系统的非实时数据交换,对于对接不支持S7、Modbus等工控协议的信息化系统非常方便。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
注册哦
x
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
工控平头哥
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』