西门子S7-1200PLC系统有五种不同模块,分别为 CPU 1211C、CPU 1212C 、 CPU 1214C、CPU1215C和CPU1217C。其中的每一种模块都可以进行扩展,以*您的系统需要。可在任何 CPU 的前方加入一个信号板,轻松扩展数字或模拟量 I/O,同时不影响控制器的实际大小。
产品简介
详细介绍
甘肃西门子S7-1200PLC代理商(价格实惠)
装入堆栈
装入堆栈指令(LDS)复制堆栈中的第N个值到栈顶。栈底的值被推出并消失。
表6--5 装入堆栈指令的有效操作数
输入/输出 | 数据类型 | 操作数 |
N | BYTE | 常数(0到8) |
如图6--3中所示,S7- 200用逻辑堆栈来决定控制逻辑。在本例中,“iv0”到“iv7”表示逻辑堆栈的
初始值,“nv”表示指令提供的一个新值,而“S0”表示逻辑堆栈中存储的计算值。
图6--3 逻辑堆栈指令的操作
实例:逻辑栈指令
RS触发器指令
置位优先触发器是一个置位优先的锁存器。当置位信号(S1)和复位信号(R)都为真时,输出为真。
复位优先触发器是一个复位优先的锁存器。当置位信号(S)和 复位信号(R1)都为真时,输出为假。
参数用于被置位或者复位的布尔参数。可选的输出反映 Bit参数的信号状态。
表6--7中给出了范例程序的真值表。
表6--6 RS触发器指令的有效操作数
时钟指令
读实时时钟和写实时时钟
读实时时钟(TODR)指令从硬件时钟中读当前时间和日期,并把它装载到一个8字节,起始地址为T的时间缓冲区中。写实时 时钟(TODW)指令将当前时间和日期写入硬件时钟,当前时钟 存储在以地址T开始的8字节时间缓冲区中。
时钟指令
您必须按照BCD码的格式编码所有的日期和时间值(例如:用
16#97表示1997年)。图6--4给出了时间缓冲区(T)的格式。
时间日期(TOD)时钟在电源掉电或内存丢失后,初始化为下列
日期和时间:
日期: 90年1月1号
时间: 00:00:00
星 期 几 : 星 期 日
使ENO=0的错误条件:
- 0006(间接寻址)
- 0007(TOD数据错误),只对写实时时钟指令有效。
- 000C(时钟模块不存在)
提示
S7- 200 CPU不会检查和核实日期与星期是否合理。无效日期February 30 (2月30日)可能被接受。故必须确保输入的数据是正确的。
不要同时在主程序和中断程序中使用TODR/TODW指令。如果这样做,而在执行TOD指令时出现了 执行TOD指令的中断,则中断程序中的TOD指令不会被执行。SM4.3指示了试图对时钟进行两个同 时的访问(非致命错误0007)。
在S7-200中日时时钟只使用低有效的两个数字表示年,所以对于2000年,表达为00。S7-200PLC不以任何方式使用年信息。但是,用到年份进行计算或比较的用户程序必须考虑两位的表示方
法和世纪的变化。在2096年之前可以进行闰年的正确处理。
扩展读实时时钟
扩展读实时时钟(TODRX)指令从PLC中读取当前时间、日期和 夏令时组态 ,并装载到从由T的地址开始的19字节缓冲区内。
扩展写实时时钟
扩展写实时时钟(TODWX)指令写当前时间、日期和夏令时组态到PLC中由T的地址开始的19字节缓冲区内。
您必须按照BCD码的格式编码所有的日期和时间值(例如:用16#02表示2002年)。表6--9给出了19字节时间缓冲区(T)的格式
时间日期时钟在电源掉电或内存丢失后,初始化下列日期和 时间:
使ENO=0的错误条件:
- 0006(间接寻址)
- 000C(时钟卡不存在)
- 0091(操作数超出范围)
使ENO=0的错误条件:
- 0006(间接寻址)
- 0007(TOD数据错误)
- 000C(时钟卡不存在)
- 0091(操作数超出范围)
日期: 90年1月1号
时间 00:00:00
星期几: 星期日
提示S7- 200 CPU仅在字节8中选择了“用户”模式时才使用字节9--18。否则,返回由STEP 7- Micro/WIN或SET_RTCX指令写入这些字节的后一个数值。 |
1 EU约定:在UTC三月份的后一个星期日的上午1:00向前调整时间一个小时。在UTC时间十月份的后一个星期日的上午2:00向后调整时间一个小时。(当进行修正时,当地时间依据于与UTC的时差。)。
2 US约定:在当地时间四月份的*个星期日的上午2:00向前调整时间一个小时。在当地时间十月份的后一个星期日的上午
2:00向后调整时间一个小时。
3 澳大利亚约定:在当地时间十月份的后一个星期日上午2:00向前调整时间一个小时。在当地时间三月份的后一个星期日的上午3:00向后调整时间一个小时。
4 澳大利亚(塔斯马尼亚岛)约定:在当地时间十月份的*个星期日的上午2:00向前调整时间一个小时。在当地时间三月份的后一个星期日的上午3:00向后调整时间一个小时。
5 新西兰约定:在当地时间十月份的*个星期日的上午2:00向前调整时间一个小时。在当地时间三月份的*个星期日或三月
15号以后的上午3:00向后调整时间一个小时。
通讯指令
网络读写指令
网络读指令(NETR)初始化一个通讯操作,根据表(TBL)的定 义,通过端口从远程设备上采集数据。网络写指令
(NETW)初始化一个通讯操作,根据表(TBL)的定义,通过
端口向远程设备写数据。
使ENO=0的错误条件:
- 0006(间接寻址)
- 如果功能返回出错信息,会置位表状态字节中的E。(见图6--5)
网络读指令可以从远程站点读取多16个字节的信息,网络写 指令可以向远程站点写多16个字节的信息。
在程序中,您可以使用任意条网络读写指令,但是在同一时 间,多只能有8条网络读写指令被激活。例如,在所给的S7- 200 CPU中,可以有4条网络读指令和4条网络写指令, 或者2条网络读指令和6条网络写指令在同一时间被激活。
您可以使用网络读写向导程序。要启动网络读写向导程序,在命令菜单中选择工具 > 指令向导,并且在指令向导窗口中选择网络读写。
表6--10 网络读写指令的有效操作数
输入/输出 | 数据类型 | 操作数 |
TBL | BYTE | VB、MB、*VD、*LD、*AC |
PORT | BYTE | 常数 对于CPU 221、CPU 222、CPU 224: 0对于CPU 224XP、CPU 226: 0或1 |
图6--5中给出了TBL参数参照表,表6--11列出了错误代码。
图6--6给出了一个实例来解释网络读写指令的使用。本例中,考虑一条生产线正在灌装黄油桶并将其 送到四台包装机(打包机)中的一台上。打包机把8个黄油桶包装到一个纸板箱中。一个分流机控制着黄 油桶流向各个打包机。4个CPU221模块用于控制打包机,一个CPU222模块安装了TD200操作器接口,被用来控制分流机。
图6--6 网络读写指令举例
图6--7中给出了2号站中接收缓冲区(VB200)和发送缓冲区(VB300)中的数据。S7--200使用网络读指令 不断地读取每个打包机的控制和状态信息。每次某个打包机包装完100箱,分流机会注意到,并用网 络写指令发送一条消息清除状态字。
图6--7 网络读写指令中TBL数据举例
实例:程序段读和程序段写指令
实例:程序段读和程序段写指令
发送和接收指令
发送指令(XMT)用于在自由端口模式下依靠通讯口发送数据。
接收指令(RCV)启动或者终止接收消息功能。您必须为接收操 作开始和结束条件。从的通讯口接收到的消息被存储 在数据缓冲区(TBL)中。数据缓冲区的*个数据指明了接收到的字节数。
使ENO=0的错误条件:
- 0006(间接寻址)
- 0009(在Port0同时发送和接收)
- 000B(在Port1同时发送和接收)
- RCV参数错误,置位6或者SM186.6
- S7- 200CPU没有处于自由端口模式。
表6--12 发送和接收指令的有效操作数
输入/输出 | 数据类型 | 操作数 |
TBL | BYTE | IB、QB、VB、MB、SMB、SB、*VD、*LD、*AC |
PORT | BYTE | 常数 对于CPU 221、CPU 222、CPU 224: 0对于CPU 224XP、CPU 226: 0或1 |
关于使用自由端口模式的更多信息,见226第7章中用自由端口模式创建用户自定义协议部分。
使用自由端口模式控制串行通讯口
通过编程,您可以选择自由端口模式来控制S7- 200的串行通讯口。当选择了自由端口模式,用户程序通过使用接收中断、发送中断、发送指令和接收指令来控制通讯口的操作。当处于自由端口模式时,通讯协议*由梯形图程序控制。SMB30 (对于端口0)和SMB130(对于端口1,如果您的S7-200有两个端口的话)被用于选择波特率和校验类型。
当S7- 200处于STOP模式时,自由端口模式被禁止,重新建立正常的通讯(例如:编程设备的访问)。在较简单的情况下,可以只用发送指令(XMT)向打印机或者显示器发送消息。其他例子包括与条码阅
读器、称重计和焊机的连接。在每种情况下,您都必须编写程序,来支持在自由端口模式下与S7- 200通讯的设备所使用的协议。
只有当S7- 200处于RUN模式时,才能进行自由端口通讯。要使能自由端口模式,应该在SMB30 (端口0)或者SMB130 (端口1)的协议选择区中设置01。处于自由端口通讯模式时,不能与编程设备通讯。
提示
可以使用特殊寄存器位SM0.7来控制自由端口模式。SM0.7反映的是操作模式开关的当前位置。当SM0.7等于0时,开关处于TERM位置;当SM0.7=1时,操作模式开关位于RUN位置。如果只有模式开关处于RUN位置时,才允许自由端口模式,您可以将开关改变到其他位置上,使用编程设备监 控S7- 200的运行。
将PPI通讯转变为自由端口模式
SMB30和SMB130分别配置通讯口0和通讯口1,并且为自由端口操作提供波特率、校验和数据位数
的选择。自由端口的控制字节如图6--8所示。每一个配置都产生一个停止位。
图6--8 用于自由端口模式的SM控制字节(SMB30或SMB130)
发送数据
发送指令使您能够发送一个字节或多个字节的缓冲区,多为255个。 图6--9给出了发送缓冲区的格式。
如果有一个中断程序连接到发送结束事件上,在发送完缓冲区中的后一个字符时,则会产生一个中断(对端口0为中断事件9,对端口1为中断事件26)。
图6--10 接收缓冲区的格式
您可以不使用中断,通过监视SMB86 (端口0)或者SMB186 (端口1)来接收消息。当接收指令未被激
活或者已经被中止时,这一字节不为0; 当接收正在进行时,这一字节为0。
如表6--13中所示,接收指令允许您选择消息的启始和结束条件。使用SMB86至SMB94对端口0进行 设置,SMB186至SMB194对端口1进行设置。
提示
当超限或有校验错误时,接收消息功能会自动终止。必须为接收消息功能操作定义一个启始条件和
一个结束条件(大字符数)。
表6--13 接收缓冲区字节(SMB86到SMB94和SMB186到SMB194)
接收指令的启动和结束条件
接收指令使用接收消息控制字节(SMB87或SMB187)中的位来定义消息起始和结束条件。
提示
当接收指令执行时,在接收口上有来自其他器件的信号,接收消息功能有可能从一个字符的中间开 始接收字符,从而导致校验错误和接收消息功能的中止。如果校验没有被使能,接收到的消息有可 能包含错误字符。当起始条件被为一个特定的起始字符或任意字符时,这种情况有可能发生, 正象下面第2.条和第6.条中所描述的那样。
甘肃西门子S7-1200PLC代理商(价格实惠)