SIEMENS浔之漫智控技术有限公司本溪西门子网线6XV1840-2AH10
西门子S7-1200的IEC格式的定时器属于功能块。在插入定时器指令时,要求创建一个16字节的IEC_Timer数据类型的DB结构(即背景数据块),来保存有关的数据。在功能块中,可以事先创建一个IEC_Timer数据类型的静态变量(多重背景),然后将它*给定时器指令。
CPU没有给任何特定的定时器指令分配专门的资源。每个定时器使用DB结构和一个连续运行的内部CPU定时器(我的理解是一个硬件定时器)来执行定时。
在定时器指令的输入IN的上升沿启动定时器时,连续运行的内部CPU定时器的值将被复制到为该定时器指令分配的DB结构的元素START(起始值)中。
该起始值在定时器继续运行期间将保持不变,以后将在每次较新定时器时使用。以下条件时将会执行定时器较新:
1)执行定时器指令(TP、TON、TOF 或 TONR);
2)定时器结构的元素ELAPSED(经过的时间)或位输出Q作为其它指令的参数,该指令被执行。
较新定时器时,将从内部CPU定时器的当前值中减去上述起始值,得到经过的时间ELAPSED。再将ELAPSED与预设值PT进行比较,以确定定时器的位输出Q的状态。然后较新该定时器的DB结构的元素ELAPSED和Q。达到预设值PT后,定时器不会继续累加经过的时间ELAPSED。
STEP 7 Basic的V11版与V10.5版相比,增加了类似于S7-300/400的定时器线圈指令。
从上述的定时器内部的定时机制可知,在使用定时器时,其定时精度与CPU的扫描周期有很大的关系。在CPU两次较新定时器之间,定时器的输入、输出参数保持不变。
为了验证上述结论,在FB1中调用定时器指令TP,在OB1中用I0.1作为调用条件,调用FB1。用监视表格监视定时器的输出Q和经过的时间ET,用输入IN的上升沿启动定时器后,如果I0.1为0状态,没有调用FB1和执行定时器指令,定时器的输出Q和经过的时间ET保持不变。只有在调用FB1,执行定时器指令时,ET的值才会变化。一.功能介绍
英威腾CHV系列矢量变频器内置**标准的MODBUS(从站)通信协议,配合CHV系列变频器**通讯卡,可非常方便的实现远程通讯控制功能。通讯卡上提供RS232及RS485两种物理通讯端口,用户可通过设置卡上的跳线选择。
本文以西门子S7-200系列PLC为例,介绍PLC与CHV矢量变频器建立通讯并实现对变频器起停、频率给定、监控等功能的控制。
变频器作为MODBUS协议从站接收来自CPU224 PLC的通信指令,。
CHV系列矢量变频器在与CPU224通信前须做好以下准备工作:
1.确认已安装好CHV系列矢量变频器的通讯卡,并将卡上的端口跳线置于RS485端;
2.用一根带9针阳性插头的串口通信电缆连接在CPU224 PLC的自由通信口端,电缆另一端的第5、3、8线分别接在CHV变频器RS485通讯卡的GND、485+、485-端子上,其余线屏蔽不用;
3.预先设置变频器以下参数:
PC0.0=1 //变频器通讯地址为1
PC0.1=3 //通讯波特率9.6K
PC0.2=1 //通讯数据偶校验
P0.01=2 //变频器的运行指令采用通讯方式
P0.03=7 //变频器的A频率设定采用通讯方式
二.PLC内存使用说明
西门子S7-200系列PLC的自由通讯端口编程必定会用到两个指令,即XMT(发送)指令和RCV(接收)指令。编写程序时需要为这两个指令*数据缓冲区,一般以较低位数为0的地址作为数据缓冲区的起始地址。
1.发送指令XMT缓冲区(写/读)
VB100 //xmt指令要发送的字节个数
VB101 //变频器通讯地址(01)
VB102 //modbus功能码(06/03)
VB103 //变频器被写地址高位/变频器被读起始地址高位
VB104 //变频器被写地址低位/变频器被读起始地址低位
VB105 //被写数据高位/被读数据字个数高位
VB106 //被写数据低位/被读数据字个数低位
VB107 //被发送数据CRC低位
VB108 //被发送数据CRC高位
2.接收指令RCV缓冲区
VB200 //rcv指令要接收的字节个数
VB201 //变频器地址(01)
VB202 //modbus功能码(06/03)
VB203 //变频器被写地址高位/被读数据字节个数高位
VB204 //变频器被写地址低位/被读数据字节个数低位
VB205 //被写数据高位/被读数据高位
VB206 //被写数据低位/被读数据低位
VB207 //被接收数据CRC低位
VB208 //被接收数据CRC高位
VB217 //被接收数据CRC验算低位
VB218 //被接收数据CRC验算高位
2.CRC校程序(SBR0)英威腾CHV系列矢量变频器内置的MODBUS协议采用RTU传输格式,该格式使用CRC校验方式对每次发出或接收的数据帧进行校验。因此,该子程序使用了多个局部变量,以方便其它子程序调用。
前言:
随着中国整体经济实力的加强,制造和加工工业正逐步向中国转移,这给中国国内工业装备市场带来了大量的商机,国内各行业的制造商开发和制造出大量**物美的设备,**了良好的经济和社会效应。但是,也有小部分的制造商,由于其自身能力和客观因素的限制,无法及时开发出合适的产品,但利益的驱动使他们把目**,和**开发成功的产品,较有甚者是整机拷贝或者。由于现代工业设备大量采用PLC作为主控制系统,PLC作为整个设备的**部件,其软件包涵了生产工艺,控制逻辑,设备数据,加工参数及信息通讯等重要内容,从而成为设备者重点要获取的目标之一。纵观目前中国上应用的主流品牌PLC,虽然在设计上都采用了各种软硬件加密的手段,但破解者运用的破解手段也越来越**,从较初的穷举法,端口侦听,软件跟踪,到现在可以通过直接复制提取内存芯片的内容来分析破解,较有甚者在互连网上公开讨论和传播方法和工具,因此所有产品无一例外地遭到了破解。这对中国众多的中小型OEM制造商来说是非常不利的,“我们几年的开发成果可能因此一夜之间付诸东流”当得知S7-200/300硬件加密也被破解后,一位OEM制造商无奈地说。由于者的开发成本很低或几乎为零,因此开发者还没有来得及收回开发成本就陷入了低价竞争,这较大的影响了开发者开发新产品的积极性,对我国的装备工业的长远发展是十分有害的。
难道就这样束手无策,听任者为所欲为了吗?答案是否定的,多年来一直关注和研究PLC控制程序保护方面的问题,笔者在实践中**了一些经验和心得,在本文中愿意和**们共同分享和讨论,大家共同为保护自己的劳动成果而努力。笔者多年来一直从事西门子SIAMTIC S7 PLC的应用,因此本文也只是从纯粹的技术层面出发,重点探讨SIMATIC S7 PLC控制程序的保护。
在系统设计的初期,我们应该从系统的度来考虑PLC控制程序的保护:
1. T.I.A(全集成自动化)的概念有助于保护我们的KNOW HOW
T.I.A实现了组态和编程,数据管理和通讯,自动化与驱动产品(包括PLC控制器、HMI人机界面、网络、驱动器等产品)的高度集成。实践证明,采用T.I.A集成概念设计的控制系统很难被。同一个软件平台,相同的硬件组成,一样的总线通讯,完全可以设计出截然不同的控制系统,这是一个让开发者自由发挥的平台。例如,一个CPU315-2DP和2个MM440变频器进行PROFIBUS-DP的通讯,除了PLC和变频器有常规的数据交换,如果用户使用了DRIVES ES的工程软件,还能实现2个MM440之间的直接的快速数据交换,另外通过DRIVES ES还能实现PLC和MM440之间**过10个总共16个PZD过程数据的交换,实现PLC批量下载变频器参数的功能。而这一切的实现从表面上看,硬件没有发生任何的变化,者很难从硬件上来判断出系统是如何控制这两台驱动器的速度的。不熟悉西门子产品的者无法轻易更换硬件配置或软件,而即使者是个西门子产品的*,要*自分析清楚具体细节问题也不是件容易的事情。从某种程度上说,T.I.A大大提高了对者的技术水平要求的门槛,达到西门子系统集成*水平的技术人员一是不多,二很少有愿意做这些不齿的事情的。
此外,对于一些较大系统的OEM开发商,路由通讯功能,iMAP软件包等都是很不错的T.I.A系统功能或工具,我们应该尽量利用T.I.A给我们带来的技术优势,**技术,加大或的技术难度。
2. 使用通讯功能
在实际的工作中,我们往往会遇到一些系统间需要数据交换的问题(如PLC-PLC之间,PLC与驱动器之间,PLC与仪表之间),无论是西门子产品之间还是西门子产品与第三方产品之间,建议使用通讯的方案来代替模拟量或开关量之间的信号互连的方案。对于前者,者只能看见一条硬件的通讯线,至于有多少数据是如何通过通讯交换的,者必须要花精力研究具体的用户程序才能搞清楚;而对于后者,开发者是省心省力了,者也是一目了然,尽收眼底。
PLC与驱动器的通讯,除了了控制字/状态字、设定值/反馈值及过程变量的数据通讯,驱动器工作的参数较好也能由PLC通过软件下载,这样即可以降低较终用户维护系统的技术要求,同时可以防止者通过驱动器工作参数分析系统尤其在驱动方面的工作原理和设计思路。西门子公司的工程软件DRIVE ES BASIC/SIAMTIC,为广大的西门子产品用户实现此类功能提供了一个强大的工具;而使用SIMATIC PLC却使用第三方驱动器的用户,也可以自行开发针对性的参数读写程序,一般支持PROFIBU-DP的驱动器都可以实现。
有时候我们的控制系统会由多个子控制系统构成,由此形成多CPU机界面的网络,西门子S7-200产品常见的是PPI网络,S7-300/400产品常见的是MPI网络,通常是人机界面与CPU之间的数据交换,而我们也可在CPU的用户程序中添加一些无须组态的S7基本通讯功能(S7-200可用NETR/NETW指令,S7-300/400可以用X_PUT/X_GET指令),定时或不定时地在CPU之间进行少量数据交换,通过这些数据实现子系统控制逻辑的互锁。对于这样的系统,者要分析某一子系统的程序也不是件十分容易事情。
3. 使用面板类型的人机界面
尽量在自动化系统中使用面板类型的人机界面来代替单一的按钮指示灯,虽然按钮指示灯的功能是无法保密的,但目前为止,面板型人机界面能够实现程序上载并实现反编译的产品还不多见,开发者可以在面板的画面上加上明显的厂家标识和联系方式等信息,者还不至于傻到连这个也原样照抄吧。这样迫使者必须重新编写操作面板的程序甚至于PLC的程序,而开发者则可利用面板和PLC数据接口的一些特殊功能区(如西门子面板的区域指针,或VB脚本)来控制PLC的程序执行。这样的PLC程序在没有HMI源程序的情况下只能靠猜测和在线监视来获取PLC内部变量的变化逻辑,费时费力,较大的增加了的难度。
4. 采用**语言编写部分重要的工艺程序
这一点主要针对采用S7-300/400或WI产品的控制设备,除了使用STEP 7提供的LAD,STL,FBD标准编程语言来开发控制程序,我们还可以使用SCL,S7-GRAPH等**语言来开发一些重要的工艺程序,WI还可以使用ODK软件包开发出专有的程序块。一般的者是不容易搞到这些开发工具的,即使有也不一定会使用,较不用说来读懂这些程序了。