全新的西门子S7-1500PLC 带来了标准型,紧凑型,分布式以及开放式不同类型的 CPU 模块。凭借快速的响应时间、集成的 CPU 显示面板以及相应的调试和诊断机制,SIMATIC S7-1500 的 CPU *地提升了生产效率,降低了生产成本。
产品简介
详细介绍
贵州西门子S7-1500PLC模块(代理商)
表6. S7-200新CPU(23版)的数据保持时间
表6. S7-200新CPU(23版)的数据保持时间
3.7同步操作面板与 S7-200 控制器的日期和时间
HMI 人机操作界面与 S7-200 的时钟同步功能包括两个方向的时钟同步:
PLC 到面板的时钟同步。
西门子操作面板可分为硬件时钟面板(TP/OP/MP270,MP370 等)和软件时钟面板(XP170X, XP177X,K-TP178 micro 等)。软件时钟面板和无备份电池的硬件时钟面板, 当断电关机后, 面板的内部时钟就会丢失, 回到出厂时的状态。但面板可以通过设置,来定时读取 PLC 的硬件时钟信息,以保持和 PLC 时钟*,这就是 PLC 到面板的时钟同步。
面板 到PLC的时钟同步。
与上述相反,即用面板的时钟来校准 PLC 的系统时钟。PLC 实际上是得到面板的时钟信息后,调用相应设置时钟的函数(或者通过用户编制的程序),更改自己的系统时钟,以保持和面板时钟*。在本文所提供的例程中,实现的是用 PLC 的时间同步面板系统时钟,同时可以在面板上修改 PLC 的时钟,从而间接地修改了面板的系统时钟。
S7-200CPU到面板的时间同步主要操作步骤如下:
1. 在 S7-200 中编程读取 CPU 系统时钟。周期调用 READ_RTC 函数,以读取 S7-200 CPU 的系统时钟,将时钟信息存放在 V 存储区,比如 VB100。
图6. 读取 S7-200 实时时钟
2. 在面板上配置时钟同步功能
PLC 到面板的时钟同步。请先设置好通讯参数;然后在“区域指针”页内,建立“日期/时间 PLC”, 指向 S7-200 中存放时间信息的区域 VW100 即可。见下图:
图7. 在 WinCC flexible 中配置面板时钟同步
请先设置好控制器的通讯参数;然后插入“日期/时间-PLC” 区域指针, 指向S7-200 中存放时间信息的区域VW100即可。见下图:
图8. 在 ProTool 中配置面板时钟同步
3.8面板上在线修改S7-200 实时时钟
通过操作面板修改 S7-200 的实时时钟,主要有以下几个步骤:
1. 在面板上建立相应的输入变量
可以新建一个标志变量(比如:地址为 V20.0)和用于触发 S7-200 CPU 的写实时时钟功能,建立年、月、日、时、分、秒 、星期等 BYTE 变量,按照 S7-200 时钟缓冲区的格式分别连接到 PLC 的连续 V 存储区中,比如:VB70 – VB77。
因 S7-200 时钟设置指令的要求,这些 BYTE 变量必须是以 BCD 格式存在,在配置时可选用“16进制”数据格式。在面板上设置的数据必须是有效的 BCD 格式的时间、日期数据,包括星期的信息(有如需要,星期信息可能需要进行必要的转换处理),否则会导致时钟同步失败。(如果使用上文提到的Clock Integer 指令库,则可选用10进制数据格式)
2. 在 S7-200 中编程,用标志变量触发来调用 SET_RTC,将 VB70 起始的缓冲区地址作为时间参数传递给该函数,来实现通过面板修改S7 PLC时间。
图9. 编程设置 S7-200 时钟。其中 V20.0 为触发写时钟的标志。
3.9时钟指令常问问题
Clock_Integer 指令库和 Micro/WIN 指令树中的读、写实时时钟指令有什么不同?
Clock_Integer 指令库读出或写入的 PLC 时钟是以十进制整数格式存储;而读、写实时时钟指令读出或写入的 PLC 时钟为 BCD 码格式。
写时钟指令(TODW)为何不能正常改写时钟内容
写时钟指令需要严格按照8个字节的时钟缓冲区格式,设置相应的数据单元,任何不合格的数据都可能造成不能写入的现象。注意数据的格式必须是BCD格式,可以说是将10进制数换成16进制表示,如16#59(59H)就是59(秒/分等)。
执行写时钟指令要保证缓冲区所有字节都包含合法数据;仅修改某些数据时,其他字节不能包含非法数值,否则会发生错误。
写时钟指令必须使用一次性的脉冲(沿)触发条件,不能持续激活写时钟指令。
如何实现 K-TP 178 micro 面板与 S7-200 的时钟同步?
步骤和方法与上述2.7章节内容相同。
4.STEP 7-Micro/WIN32的指令库
为了便于用户的编程,Micro/WIN提供了对指令库的支持。指令库就是独立于具体工程项目文件,而与Micro/WIN集成的子程序集。
Micro/WIN可以集成两种类型的指令库:
西门子提供的标准指令库
用户自定义的指令库
指令库存在于Micro/WIN指令树的Libraries(指令库)分支中:
图1. 指令库
一个子程序中可以包括几个子程序、中断服务程序。可以如同调用子程序一样在用户程序中使用指令库中的子程序;如果调用的子程序中用到了指令库中的中断程序,Micro/WIN会自动调用,不*户处理。
和子程序一样调用库指令
调用库指令后,可以查看子程序的局部变量表,一般都可以找到参数的意义和格式(除非生成库时没有)如果生成库时了密码,库指令的内容无法查看
西门子指令库还可能需要在编程时分配库指令内存区
4.1分配库指令数据区
调用STEP 7 - Mciro/WIN32 V3.2 Instruction Library(指令库)需要分配库指令数据区(Library Memory)。库指令数据区是相应库的子程序和中断程序所要用到的变量存储空间。
如果在编程时不分配库指令数据区,编译时会产生许多相同的错误(错误18)。
操作步骤(以Modbus RTU库指令为例):
*步:在指令树的Project(项目)中,以鼠标右键单击Program Block(程序块),在弹出的快捷菜单中选择Library Memory。如图1所示:
图2.分配指令库
第二步:在弹出的选项卡中设置库指令数据区,如图2所示:
图3. 缺省情况下是从VB0开始,但因为与Modbus的保持寄存区冲突,所以手动改为VB2000。按“Suggest Address”按钮也可以自动分配。
可以使用Suggest Address(*地址)设置数据区,但要注意编程软件设置的数据区地址,只考虑到了其他一般寻址,而未考虑到诸如Modbus数据保持寄存器区等的设置。应当确保不与其他任何已使用的数据区重叠、冲突。不应重复按Suggest Address按钮,否则也会造成混乱。
在STEP 7-Micro/WIN32 V3.1中,有分配库指令数据区时有不同的操作方法,需要在Symbol Table(符号表)中设置一个首地址。我们强烈建议使用当时的编程版本。
4.2添加指令库
注意:添加自定义指令库,需要关闭编辑库指令的项目,新建立一个项目。如果要添加其他来源的库指令自然不需要如此。
*步:在Micro/WIN的File(文件)菜单中选择Add/Remove Libraries...(添加/删除指令库)命令 ;或者在指令树的Libraries(指令库)分支上单击鼠标右键,选择Add/Remove Libraries...
图4. 选择添加/删除指令库命令
添加/删除对话框中将显示已经在本机的Micro/WIN中集成的用户自定义指令库。
图5. 已安装的库指令
第二步:按Add(添加)按钮,选择新定义的库文件路径。用户自定义库将自动添加到Micro/WIN指令树的Libraries分支下。
图6. 选择库文件
缺省情况下,Micro/WIN到图8中的路径下寻找库指令文件。用户也可以其他路径。但要注意库文件应当保持在非移动的介质上,如果了一个可移动硬盘,则硬盘不在时会发生找不到库的错误。建议用户使用缺省设置。
4.3删除库指令
*步:选择添加/删除指令库命令
图7. 选择命令
第二步:选中须卸载的库所对应的库文件,按Remove(删除)按钮
图8. 选中要删除的库指令文件
贵州西门子S7-1500PLC模块(代理商)