BCNet实现西门子PLC与HMI的数据点表探测
基于北辰BCNet-S7200-S或BCNet-S7300-S的硬件S7总线分析功能,在不知道PLC点位的情况下,实现对触摸屏数据点位进行探测,结合触摸屏的面板信息,分析当前PLC的重要点表信息。
BCNet-S7300-S用于西门子 S7-200、SMART S7-200、S7-300、S7-400系列PLC以太网数据采集,非常方便构建生产管理系统。模块集成WiFi功能,支持AP模式、STA模式和AP+STA模式,非常方便构建WiFi网络,直接通过WiFi进行PLC编程、数据采集。
BCNet-S7-300-S采用工业级设计,导轨安装,带通讯线。不占用PLC编程口,上位机通过以太网对PLC数据监控的同时,触摸屏可以通过复用接口X2与PLC进行通讯。BCNet-S7-300-S支持工控领域内绝大多数SCADA软件,支持西门子S7以太网协议、ModbusTCP主从站和BCNetS7以太网通讯方式。
一、硬件连接
1、如图所示原有系统为触摸屏连接S7-200的PPI接口,现在不改变原有系统的基础上,增加了BCNet-S7200-S模块,实现了以太网数据采集、PLC编程和不同PLC之间数据交换功能。
对于S7-200的触摸屏,BCNet分桥接和直通两种,可通过“桥接/直通拨码开关”进行桥接和直通的选择,一般情况下国产类触摸屏选择桥接型,西门子等多主站协议触摸屏选择直通型。
2、如图所示原有系统为S7-300MPI多主站系统,在不改变原有系统的基础上,增加了BCNet-S7300-S模块,实现以太网数据采集、PLC编程和不同PLC之间数据交换功能。
二、探测非西门子触摸屏(如MCGS触摸屏)连接S7-200点表
1、当前触摸屏画面存在两个变量,“当前温度”和“预警温度”,均为单精度浮点型数据,连接设备为S7-200(CPU224XPCN)。
2、运行“BCDeviceV1031.exe”,搜到到BCNet-S7200-S模块,点击“设备运行诊断”;
3、在设备运行诊断中,可以见S7总线当中存在两个设备,设备0为主站即BCNet-S7200-S模块,设备2为从站即S7200-CPU224,点击“点表探测”按钮;
4、在跳出的权限认证窗口中输入“BCNet888”,进入S7总线分析界面,如下图;
①由触摸屏面板可知选择浮点型数据,提供“浮点型32位”和“浮点型64位”两种解析类型,即单精度和双精度浮点,此处选择“浮点型32位”;
②站点信息提示为“桥接HMI读取PLC”,说明当前触摸屏是通过桥接方式进行通讯,即通过BCNet-S7200-S中转方式进行通讯;
③可见当前数据流“30.3”和“38.9”对应“VD200”和“VD102”,通过触摸屏面板信息,可知“VD200”对应“当前温度”,“VD102”对应“预警温度”;
④可将当前列表导出为Excel文件进行进一步编辑和处理;
5、对触摸屏的“预警温度”进行设定成“39.5”,通过BCDevice工具可探测到当前HMI向PLC的“VD102”写入“39.5”的行为。
三、探测西门子触摸屏连S7-300点表
1、示例组态西门子KTP1000BasicDP触摸屏画面如下,连接的PLC为CPU315-2DP,为了演示本模块的探测功能,故组态画面读取DB1.DBW0~DB1.DBW18整型变量、MW0~MW2整型变量和Q0.0~Q0.1布尔变量;
2、运行“BCDeviceV1031.exe”,搜到到BCNet-S7300-S模块,点击“设备运行诊断”;
3、在设备运行诊断中,可以见S7总线当中存在三个设备,设备0为主站即BCNet-S7300-S模块,设备2为从站即S7300-CPU315-2DP,设备1为KPT1000触摸屏;点击“点表探测”按钮;
4、在跳出的权限认证窗口中输入“BCNet888”,进入S7总线分析界面,如下图;
①站点信息提示为“主站1读取主站2”,说明当前触摸屏是多主站通讯,由“设备运行诊断”页面可以看出主站1为KPT1000触摸屏,主站2为S7300 PLC;
②由触摸屏面板可知选择有符号整型数据,提供“有符号16位”和“有符号32位”等多种整型解析类型,此处选择“有符号16位”;
③可对当前数据流与触摸屏面板信息进行比对,可直观得出触摸屏当前画面读取S7300对应的点表信息;
④可将当前列表导出为Excel文件进行进一步编辑和处理;
5、对触摸屏的Q0.0进行置位操作,通过BCDevice工具可探测到当前HMI向PLC的“Q0.0”置位的行为。
四、总结
通过BCNet-S7200-S或BCNet-S7300-S的硬件S7总线分析功能,可对当前S7总线(PPI、MPI和DP总线)的数据流进行分析,探测出当前触摸屏的读取行为和写入行为,结合触摸屏的面板信息,可得出PLC的重要点表信息;通过本方式亦可探测出触摸屏读取多个PLC站点的点表信息、探测出多个PLC之间数据交换的信息。