西门子数控系统全国授权总代理
西门子数控系统全国授权总代理
浔之漫智控技术(上海)有限公司(BFZY-YANGHONG)是西门子授权代理商
搭建环境就按照简化的方式,电脑与PLC直连,电脑上除了的软件,不安装其他任何软件,这样可以避免各种干扰信息。我自己习惯使用干净的虚拟机系统,在虚拟机的XP系统中安装PLC的编程软件、上位组态软件及网络工具Wireshark。
2、刚开始时先在操作系统中检测和PLC之间是否能正常通讯,在使用上位组态软件测试是否能从PLC中获取到相关数据,一切正常后,再开始抓包分析工作。
3、前两步都正常后,下面就开始抓包了。在上位组态软件中只留下一个IO点,记录现在IO的配置,一般包含功能区、开始地址,数据类型等设置,不同的协议不一样。实际也就是关注界面上可以设置的区域有哪些,待会儿抓取到多条报文后,进行对比分析,看同类型报文中哪些区域在变,哪些区域不变。同时在网络工具Wireshark中设置好过滤条件(本来中我对目的端口和源端口进行过滤就可完整无误的将上位软件和PLC之间的通讯完整的抓取到而且不会有垃圾报文),这是的,因为如果加上过滤条件,抓到的包成百上千,存在大量无用的信息,那么就无从下手了。下面是抓取的报文截图
破解工业通讯协议抓取的报文1破解工业通讯协议抓取的报文24、通过对上位软件的多次停止然后又启动进行多次抓包后,先对多次抓包的报文发送顺序和报文长度进行对比,寻找其规律。通过上面两次的抓包(其后只是改变了配置界面的一项配置)可以发现一些规律,首先是每次开始都是3个固定长度的包,如你对TCP/IP熟悉的话,可以看到这是TCP连接的3此握手。然后再看截图中的*4个包和*5个包,发现两张图上这两个包的长度一样,这时候可以对比这两次抓包中的*4个包和*5个包的应用层数据是否一样,如果一样,再多次抓包后看每次在TCP连接建立后发送的包和回来的包的应用层数据是否都一样,如果一样,基本可以确定是PLC登录验证的报文。
5、接下来继续看后面的报文,通过截图可以看见后面的包都很有规律了,在本次场景的抓包中,基本是每4个包一个循环,很有规律。而且每次抓包看到的都一样,同时我们再去检查PLC中提供数据的和上位软件中对应的IO点的数据,看看是否一样,而且是否随PLC中的数据变化而变化。如果是这么回事,那就恭喜了,破解有向前进了一步。现在进入到对这很有规律的4条报文的分析比较。我将3次分别转包得到的报文的*6条报文的应用层数据分别复制到记事本中,由于这段16进制的报文不长,就没有使用专门的分析工具了,从对3条报文的应用层数据的对比分析,我找到了其中的差异部分。如下图所示,前面部分一样,不同的部分已经用红框标注。然后再把每次抓包前对上位组态软件的设置参数列出来,看看是否能找到这个十六进制和设置参数的关系。
破解工业通讯协议抓取的报文3
很幸运,报文红框中十六进制和上层组态软件的设置参数的关系基本已经确定,按照这种理解,再次在改变上层组态软件的设置参数,然后再次抓包,就可以确定所找到的规则是否正确。本例中的这个报文是从上位组态软件发给PLC的,报文中变化的区域是上层组态软件的设置参数开始地址和请求的数据长度。
6、接下来的分析方法和*5条中的一样,如遇到应用层数据相同的报文,那么应该是协议中的确认帧一类的,如果遇到由于上层组态软件的设置参数变化而变化的,那么就和数据有很大关系了。有关后续报文的分析就不一一详述了。终的结果算是对向PLC读取数据的私有通讯协议有了较为全面的了解。
后想说的是,对工业讯协议破解是一个繁琐且需要较大耐心的事情。能不能破解工业讯协议主要还是看此私有协议的复杂程度及是否存在不可逆的加密算法,如是明文类通讯协议,一般都可破解,需要的是时间和耐心,而对于加密的通讯协议,一般就选择放弃工业讯协议破为便于大家尽快熟悉S7-1200 PLC,昌晖仪表网在本文深度介绍不同S7-1200 CPU型号的性能特点、功能和接线,干货技术文章。
1、S7-1200 CPU的共性① 可以使用梯形图(LAD)、函数块图(FDB)和结构化控制语言(SCL)这3种编程语言。布尔运算指令、字传送指令和浮点数数学运算指令的执行速度分别为0.08μs/指令、1.7μs/和2.3μs/指令。② S7-1200集成了大150kB(B是字节的缩写)的工作存储器、大4MB的装载存储器和10KB的掉电保持存储器。CPU 1211C和CPU 1212C的位存储器(M)为4096B,其他CPU为8192B。可以用可选的SIMATIC存储卡扩展存储器的容量和新PLC的固件。还可以用存储卡将程序传输到其他CPU。
③ 过程映像输入、过程映像输出各1024B。集成的数字量输入电路的输入类型为漏型/源型,电压额定值为DC24V,输入电流为4mA。1状态允许的小电压/电流为DC15V/2.5mA,0状态允许的大电压/电流为DC 5V/1mA。输入延迟时间可以组态为0.1μs-20ms,有脉冲捕获功能。在过程输入信号的上升沿或下降沿可以产生快速响应的中断输入。
继电器输出的电压范围为DC5-30V或AC5-250V。大电流2A,白炽灯负载为DC30W或AC200W。DC/DC/DC型MOSFET(场效应管)的1状态小输出电压为DC20V,0状态大输出电压为DC0.1V,输出电流0.5A。大白炽灯负载为5W。
脉冲输出多4路,CPU 1217支持高1MHz的脉冲输出,其他DC/DC/DC型的CPU本机高100kHz,通过信号板可输出200kHz的脉冲。 ④ 有2点集成的模拟量输入(0-10V),10位分辨率,输入电阻大于等于100kΩ。⑤ 集成的DC24V电源可供传感器和编码器使用,也可以用来做输入回路的电源。⑥ CPU 1215C和CPU 1217C有两个带隔离的PROFINET以太网端口,其他CPU有一个以太网端口,传输速率为10M/100Mbit/s。⑦ 实时时钟的保存时间通常为20天,40℃时少为12天,大误差为±60s/月。
2、S7-1200 CPU的技术规范
S7-1200现在有5种型号的CPU模块(简称为CPU,见表1),此外还有故障安全型CPU。CPU可以扩展1块信号板,左侧可以扩展3块通信模块。
表1 西门子S7-1200 CPU技术规范
S7-1200 CPU特性 CPU 1211C CPU 1212C CPU 1214C CPU 1215C CPU 1217C
本机数字量I/O点数 6入/4出 8入/6出 14入/10出 14入/10出 14入/10出
本机模拟量I/O点数 2入 2入 2入 2入/2出 2入/2出
工作存储器/装载存储器 50KB/1MB 75KB /1MB 100KB/4MB 125KB/4MB 150KB/4MB
信号模块扩展个数 无 2 8 8 8
大本地数字量I/O点数 14 82 284 284 284
大本地模拟量I/O点数 13 19 67 69 69
高速计数器点数 3点 5点 6点 同前 6点
单相 3点/100kHz 3点/100kHz,1点/30kHz 3点/100kHz,3点/30kHz 同前 4点/1MHz,2点/100kHz
正交相位 3点/80kHz 3点/80kHz,1点/20kHz 3点/80kHz,3点/20kHz 同前 3点/1MHz,3点/100kHz
脉冲输出(多4点) 100kHz 100kHz或20kHz 100kHz或20kHz 同前 1MHz或100kHz
上升沿/下降沿中断点数 6/6 8/8 12/12 14/14 14/14
脉冲捕获输入点数 6 8 14 14 14
传感器电源输出电流/mA 300 300 400 400 400
外形尺寸/mm 90×100×75 90×100×75 110×100×75 130×100×75 150×100×75
S7-1200 CPU模块图1中的①是集成的I/O(输入/输出)的状态LED(发光二极管);②是3个指示CPU运行状态的LED;③是PROFINET以太网接口的RJ45连接器;④是存储卡插槽(在盖板下面);⑤是可拆卸的接线端子板。每种CPU有3种具有不同电源电压和输入、输出电压的版本(见表2)。表2 西门子S7-1200 CPU的3种版本
CPU版本 电源电压 DI输入电压 DQ输出电压 DQ输出电流
DC/DC/DC DC24V DC24V DC24V 0.5A,MOSFET
DC/DC/Relay DC24V DC24V DC5-30V,AC5-250V 2A,DC30W/AC200W
AC/DC/Relay AC85-264V DC24V DC5-30V,AC5-250V 2A,DC30W/AC200W
3、CPU的外部接线图
CPU 1214C AC/DC/Rly(继电器)型的外部接线图见图2。输入回路一般使用图中标有①的CPU内置的DC24V传感器电源,漏型输入时需要去除图2中标有②的外接DC电源,将输入回路的1M端子与DC24V传感器电源的M端子连接起来,将内置的24V电源的L+端子接到外接触点的公共端。源型输入时将DC24V传感器电源的L+端子连接到1M端子。
CPU 1214C DC/DC/Rly的接线图与图1-4的区别在于前者的电源电压为DC 24V。
CPU 1214C AC/DC/Relay的外部接线图
图2 CPU 1214C AC/DC/Relay的外部接线图
CPU 1214C DC/DC/DC的接线图见图2,其电源电压、输入回路电压和输出回路电压均为DC24V。输入回路也可以使用内置的DC24V电源。
4、CPU集成的工艺功能S7-1200集成的工艺功能包括高速计数与频率测量、高速脉冲输出、PWM控制、运动控制和PID控制。①高速计数器
CPU集成了多6点高速计数器(与型号有关),CPU 1217C有4点高频率为1MHz的高速计数器。其他CPU有3点高频率为100kHz(单相)或80kHz(互差90°的正交相位信号)的高速计数器。其余各点的高频率为30kHz(单相)或20kHz(正交相位信号)。如果使用信号板,还可以测量频率高达200kHz的单相脉冲信号,或高160kHz的正交相位信号。 ②高速输出各种型号的CPU多4点高速脉冲输出(包括信号板的DQ输出)。CPU本体100kHz,信号板200kHz,CPU1217多支持1MHz的高速脉冲输出。
CPU 1214C DC/DC/DC的外部接线图图3 CPU 1214C DC/DC/DC的外部接线图
③运动控制S7-1200的高速输出可以用于步进电机或伺服电机的速度和位置控制。通过一个轴工艺对象和PLCopen运动控制指令,它们可以输出脉宽调制信号来控制步进电机速度、阀位置或加热元件的占空比。除了返回原点和点动功能以外,还支持**位置控制、相对位置控制和速度控制。轴工艺对象有的组态窗口、调试窗口和诊断窗口。
④用于闭环控制的PID功能PID功能用于对闭环过程进行控制,建议PID控制回路的个数不要过16个。STEP 7中的PID调试窗口提供用于调节的形象直观的曲线图。还支持PID参数整定功能,可以自动计算PID参数的佳调节值。初谈西门子S7-1200的硬件结构
PLC应用西门子产品S7-1200主要由CPU模块(简称为CPU)、信号板、信号模块、通信模块和编程软件组成,各种模块安装在标准导轨上。S7-1200的硬件组成具有高度的灵活性,用户可以根据自身需求确定PLC的结构,系统扩展十分方便。
1、CPU模块S7-1200的CPU模块(见图1)将微处理器、电源、数字量输入/输出电路、模拟量输入/输出电路、PROFINET以太网接口、高速运动控制功能组合到一个设计紧凑的外壳中。每块CPU内可以安装一块信号板(见图2),安装以后不会改变CPU的外形和体积。