使用IOT-Tree Server通过PPI协议连接西门子PLC S7-200 Smart
IOT-Tree Server是个开源物联网软件,可以作为组态软件成为自动化系统的上位软件。她提供了各种设备接入、数据组织管理、数据分享使用、消息流控制逻辑和人机交互多个方面的功能。当然,你也可以仅仅使用这个软件作为数据采集终端或边缘计算的软件。
这是IOT-Tree Server相关的系列文章,你可以参考其他文章更多了解IOT-Tree能给你带来的好处:
使用IOT-Tree Server通过MC协议连接三菱Q系列PLC
使用IOT-Tree Server通过FINS协议连接欧姆龙CP2E-N系列PLC
系列文章还包含IOT-Tree完成一个具体项目的过程,非常详细,如下:
机房自动化监控手把手分享给你 - 10 项目完成总结
本文介绍的是使用IOT-Tree Server通过PPI协议(基于RS485接口)连接西门子PLC S7-200 Smart (SR40)具体过程。IOT-Tree不仅可以在现场直接通过RS485接口进行直连通信。还可以通过4G DTU模块与云端运行的IOT-Tree实例通信连接。
1 设备和环境准备
1.1 对接PLC方法
S7-200 SMART CPU 集成的 RS485 通信端口(端口0)是与 RS485 兼容的9针 D 型连接器。CPU 集成的 RS485 通信端口的引脚分配如下所示。
连接器 | 引脚标号 | 信号 | 引脚定义 |
1 | 屏蔽 | 机壳接地 | |
2 | 24V 返回 | 逻辑公共端 | |
3 | RS-485 信号 B | RS-485 信号 B | |
4 | 发送请求 | RTS (TTL) | |
5 | 5V 返回 | 逻辑公共端 | |
6 | + 5V | +5 V,100 Ω 串联电阻 | |
7 | +24V | +24 V | |
8 | RS-485 信号 A | RS-485 信号 A | |
9 | 不适用 | 10 位协议选择(输入) | |
外壳 | 屏蔽 | 机壳接地 |
1.2 PLC端准备
通过STEP 7 MicroWIN 对PLC进行本地控制编程,如果程序使用自己的协议占用了其中一个接口,那么就不要用这个接口对接了,这部分就看你自己怎么玩了。
S7-200 smart RS485口如果不被占用,就直接支持PPI协议了。其中,PLC地址为2
给PLC通电,下载程序启动。
1.3 IOT-Tree准备
对接PLC的IOT-Tree Server软件实例安装配置可以参考:
IOT-Tree快速开始
以下是IOT-Tree已经安装之后,通过PPI方式对接PLC的详细配置过程。
2 IOT-Tree使用RS485直接连接PLC配置过程
访问IOT-Tree管理地址http://localhost:9090,输入管理员用户密码之后,进入管理主界面。在本地项目区块中,新增项目标题为:“西门子S7-200 Smart接入”。如下图:
2.1 配置接入
因为RS485接口在IOT-Tree端最终体现的是串口(COM口),所以IOT-Tree项目中的接入应该使用“串口通信COM”。点击左上角接入菜单,选择“串口通信COM”,在弹出窗口中填写如下内容,特别注意RS485口对应的ID。如下:
点击确定之后,就完成了接入配置:
2.2 配置通道和设备
接着,我们在中间浏览树根节点,鼠标右键选择“新增通道”。在弹出的窗口填写如下内容,其中驱动点击选择"Siemens PPI"。
确定之后就完成了通道节点的添加。然后鼠标左键点击接入RS485的连接端子到这个通道ch1的连接端子上方,然后松开左键,建立接入到这个通道的关联:
接着我们在这个通道下面添加PLC设备:鼠标右键点击ch1这个通道,选择“新增设备”。在弹出窗口填写如下内容
完成之后我们就可以在通道下面看到这个设备节点了
接下来,点击选中设备PLC1,打开右边属性页中,修改如下参数:
点击右上角“应用按钮”进行保存,就完成了通信及设备参数配置。然后,就可以在这个设备节点下添加需要采集的数据标签了。
2.3 配置采集的数据标签
点击选中plc1设备节点,在右边标签[标签]列表中就可以添加需要采集的数据了。
点击"新增标签"按钮,弹出如下标签编辑窗口。
标签填写说明:
标签名称必须符合变量名称规范;地址区域填写的地址格式和欧姆龙PLC要求的规范一致。如果不确定地址和数据类型是否合理,可以点击“自动检查地址按钮”。IOT-Tree会根据当前填写的地址内容进行有效性判断和规范格式,并自动设置数据类型。当然,你还可以点击帮助查看支持的欧姆龙PLC地址格式和范围。
下面则是点击帮助按钮弹出的地址格式和范围说明文档:
确定之后,我们就添加了这个状态标签:
如果你采集的数据点不多,那么直接在设备PLC设备节点下配置全部标签(采集点)就行了。但是,如果需要采集的数据点很多,建议在这个设备节点下添加标签组子节点进行分类,然后在不同的标签组下面分别添加标签即可,整个过程基本鼠标右键使用里面的菜单项即可完成,在此不做详细展开了。配置标签和标签组最终效果如下:
补充说明:你也可以使用导入标签的方式一次添加多个标签。或者如果你已经做过类似机器配置,其他IOT-Tree项目与此类同。那么可以从另外项目导出标签列表文本,在此项目中使用“导入标签”快速导入。
以上如果配置都正确,现场PLC已经通电,启动这个项目到运行状态,就可以看到接入和通道都进入运行状态,并且标签的采集数据也会不断更新变化。这样就完成的现场设备接入。
2.4 后续数据处理
通过以上基础的设备接入和设备数据组织配置,接下来你可能需要有如下数据使用。
2.4.1 基于标签数据制作组态监控画面
本部分可以参考我的系列文章:机房自动化监控手把手分享给你 - 10 项目完成总结
这一系列文章非常详细的说明了整个监控画面的制作和使用过程。
2.4.2 通过关系数据库共享标签实时数据给其他系统
请参考:使用IOT-Tree消息流实现实时数据同步:标签实时数据--关系数据库表
2.4.3 通过MQTT向云端定时发送采集数据
请参考:使用IOT-Tree消息流MQTT模块节点实现监测数据推送功能
当然,还可以有更多的后续数据处理,这些基本都通过IOT-Tree的消息流提供的功能节点来组合配置实现。
3 IOT-Tree运行在云端通过4G DTU对接远程PLC配置过程
上面完成了在PLC设备现场,通过RS485方式对接并获取S7-200 smart的整个过程。事实上,我们还会遇到如下对接需求:
1,前提:PLC 的RS485口没有占用,并且IOT-Tree运行在云端(对外有公网IP提供数据接入)。
2,用户希望通过4G DTU对接PLC并把数据直接获取到云端(而4G DTU对下支持RS485对上支持Tcp Client透明传输)。
假设我们在上面配置的数据组织与云端IOT-Tree需要的数据完全一致。那么我们可以把上面现场配置的IOT-Tree项目导出,然后在云端运行的IOT-Tree实例中导入。剩下工作就很简单了——只需要调整一个Tcp Server接入即可。
3.1 4G DTU配置要求
- 4G DTU在现场RS485接口对接PLC,并且正确设定串口相关参数。
- 4G DTU使用Tcp Client 透明传输运行模式连接云端IOT-Tree提供的Tcp Server地址和端口,并且还得设定一个连接id——每次tcp连接成功,必须先发送代表自身身份的id。
3.2 IOT-Tree接入配置和调整
我们导入前面章节配置的项目之后,需要增加一个Tcp Server接入。如下操作:
在左上角接入菜单选择“Tcp服务器”,弹出窗口填写如下内容:
这说明了我们新增了一个Tcp Server端的服务,对外使用25000端口接入。确定之后,可以在接入列表中出现这个接入项。因为现场DTU会在连接之后,提供一个自身id,因此,需要在这个Tcp Server监听接入节点下方定义连接。
鼠标右键"[Tcp Server]远程接入",选择“新增连接”这个菜单项,弹出窗口中,填写如下内容。特别注意Socket Conn Id这个项,必须和现场DTU配置的id相同。
确定之后,就可以看到这个连接了,并且右边也有一个关联端子。
我们接下来,就需要把原来串口与通道ch1的关联断开,把新加入的DTU1连接与通道ch1建立关联。鼠标右键原来连接端子,点击删除。然后鼠标左键DTU1端子不松开,拖拽到ch1的端子上方释放,就完成了关联切换。
![]() | ![]() |
启动项目,并且现场DTU通电连接云端IOT-Tree成功之后,对应id的tcp接入就会形成通道到现场PLC的一个透明链路——从通道和PPI驱动的角度这个和现场RS485直连没有区别。
这种接入和数据组织的分离可以最大方便你现场调试和问题排除工作。上面这个项目可以先到现场通过RS485直接和PLC连接,配置调试通过之后,再方便地应用到云端,整个过程如果有问题马上就可以进行定位,整体项目实施高效快捷。