电动机功率 | 3kW | 外形尺寸 | 2mm |
---|---|---|---|
应用领域 | 环保,食品/农产品,地矿,包装/造纸/印刷,纺织/印染 | 重量 | 2kg |
西门子S7-1200 控制器是我们新推出产品的核心,可实现简单却高度精确的自动化任务。西门子S7-1200 控制器实现了模块化和紧凑型设计,功能强大、投资安全并且*适合各种应用。可扩展性强、灵活度高的设计,可实现标准工业通信的通信接口以及一整套强大的集成技术功能,使该控制器成为完整、全面的自动化解决方案的重要组成部分。
![]() |
参考价 | ¥322 |
订货量 | 1 |
更新时间:2019-06-04 11:05:42浏览次数:174
联系我们时请说明是化工仪器网上看到的信息,谢谢!
重庆西门子S7-1200PLC模块代理(优势价格)
STEP 7的数据类型:BOOL、BYTE、WORD、DWORD、CHAR
数据类型为BOOL的变量表示一个位值(比如输入I 1.0)。数据类型为BYTE、WORD和DWORD的变量分别是8位、16位或32位的位串,不能对单独位的值进行运算。
这些数据类型的特殊形式包括了BCD码、与计数器相关的计数值,以及以ASCII码形式表示字符的数据类型CHAR(如图1所示)。
图1 BCD码和CHAR的表示形式
1.BCD码
在STL中,BCD码没有特别的标识。可以使用数据类型16#(16进制)和数字0~9输入一个BCD码。
BCD码在加载定时值或计数值以及在转换功能时使用。当启动定时器功能时需要定时值,数据类型S5TIME#是有效的(见下文)。而计数值可以使用数据类型16#或C#。一个计数值C#是介于000~999的BCD码,其符号位通常为0。
一般来说,BCD码是无符号数。和转换功能一起,BCD码的符号由左边(高位)的十进制数提供,这将会导致数字序列中十进制数的丢失。
当BCD码存储在一个16位的字中时,符号位位于较高的十进制数中,此时只涉及第15位。信号状态“0”表示该数值为正数,“1”表示负数。符号不会影响个别十进制数的设置。同样的设置适用于一个32位的字。
16位BCD码有效的数值范围为0~±999,32位BCD码是0~±9 999 999。
2.CHAR
数据类型为CHAR(字符)的变量占用1字节。数据类型CHAR表示单个以ASCII码形式保存的字符,比如‘A’。可以在单引号中使用所有的可打印字符。
和STL加载语句结合时,一些特殊的字体如表1所示。比如,L‘$$’将会以ASCII码的格式加载一个美元符号。
除此之外,在加载ASCII编码格式的字符进入累加器时,可以使用数据类型CHAR的其他特殊形式。L‘a’将一个字符(此时为a)向右对齐加载到累加器中,L‘aa’加载两个字符,L‘aaaa’则加载四个字符。
表1 CHAR的特殊字符
基本数据类型变量的大长度为1双字,因此可以使用加载和传送功能或二迸制逻辑运算来处理这种变量。
基本数据类型可以占用1位、1字节、1字或者1双字。
1.声明
varname是变量名
datatype是一个基本数据类型
pre-assignment是一个确定的值
数据类型(比如BOOL、REAL)的标识是关键字,它们也可以使用小写字母书写。基本数据类型的变量可以在符号表中声明为全局变量,或者在声明段中声明为局部变量。
2.预赋值
在声明段,该变量可以预赋值(不声明为功能的块参数或暂态变量),预赋值必须和变量的数据类型*。
3.应用
可以在相应声明的块参数(属于同一种数据类型POINTER或ANY)中应用基本数据类型的变量,或者使用“一般的”STL语句(比如二进制校验、加载功能等)来存取它。
4.变量保存
基本数据类型变量的保存和有关的地址一样,包括块参数在内的所有地址都是允许的。
系统状态表(SZL)描述了可编程序控制器当前的状态。使用信息功能可以读状态表但不可以修改。因为完整的状态表极其庞大,所以以子表和子表摘录的形式来实现读取操作。子表是虚拟表,就是说,仅当存在请求时,CPU的操作系统才生成有效的表。
SZL的ID用于识别子表,它包含了表适用的模块类型、子表摘录的数目以及实际SZL子轰数目(如图1所示)。系统提供给所需的信息和指明子表对象的索引。标准的情况是,CPU提供自动化系统上的信息,但是FM和CP模块同样可以使用这些服务以便使信息有效(见模块文档)。可能的CPU的系统状态表在操作说明中描述。
图1 SZL ID的结构
1.读报头信息
使用SZL ID W#16#OFFxx就可以读取SZL子表的报头信息,而不涉及相关的数据记录,(xx=SZL子表的序号)。参数SZL_HEADER.N_DR(数据记录数目)返回一次SZL作业模块可以提供的、子表摘录的数据记录允许的大值。对于动态子表,该值可能要比实际可读的数目大。数据记录长度由参数SZL_HEADER.LENGTHDR。使用报头信息中的这些数据,在启动时就能给相关的SZL子表创建一个足够大的数据缓冲器。
2.SFC 51 RESYSST读SZL子表
使用系统功能SFC 51 RESYSST声以读系统状态表(SZL)的子表或子表摘录。SFC 51的参数在表1中列出。
表1 SFC 51 RDSYSST的参数
REQ=“1”启动读操作,BUSY=“0”说明操作已经完成了。操作系统可以准同步地执行几个异步的读取操作,读取操作的个数取决于所使用的CPU型号。如果SFC 51通过功能值(W#16#8085)报告缺少数据源,此时必须重新发送读取请求。
参数SZL_ID和INDEX的内容与CPU型号有关。如果不需要使用参数INDEX提供信息,则其设置无关紧要。参数SZL_HEADER的数据类型为STRUCT,变量LENGTHDR(数据类型WORD)和N_DR(WORD)作为其组件。LENGTHDR包含了数据记录的长度,N_DR是所读取数据记录的序号。
使用参数DR来SFC 51要将数据记录输入其中的变量或数据区。比如,P#DB200.DBX0.0 WORD 256会在数据块DB 200中提供一个从DBB0.0开始的、长度为256字的数据区。如果提供的区域不够大,也能够输入其所能容纳的尽可能多的数据记录。只能传输完整的数据记录,的区域必须少能够容纳一个数据记录。
当一个诊断中断即将到来或即将过去的时候,操作系统中断用户程序的扫描并调用组织块OB 82。如果OB 82没有编程,诊断中断发生时,CPU将跳转到STOP模式。可以通过使用系统功能SFC 39 DIS_IRT和SFC 40 EN_IRT来禁止或启用OB 82,使用SFC 41DIS_AIRT和SFC 42 EN_AIRT来延迟或启用它。
如果主站CPU处于STOP模式,PROFIBUS DPV1从站同样可以产生诊断中断。CPU处于模式STOP时,触发的诊断中断可以得到响应,但不处理。即使CPU进入RUN模式,也不会实现组织块OB 82的调用。
表1给出了诊断中断OB 82的启动信息。启动信息的*个字节内,B#16#39代表一个即将到来的诊断中断,B#16#38代表一个即将过去的诊断中断。第6个字节给出了地址标识(B#16#54代表一个输入,B#16#55对应一个输出),随后的INT变量包含了产生诊断中断的模块地址。接下来的4字节包含了模块提供的诊断信息。
表1 组织块OB 82(诊断中断)的启动信息
可以在OB 82中使用系统功能SFC 59 RD_REC(读数据记录),来获得详细的出错信息。OB 82退出之前,诊断信息是*的,就是说,它们保持“冻结”(状态)。OB 82的退出响应模块上的诊断中断。
模块的诊断数据位于数据记录DS 0和DS 1中,数据记录DS 0包含了诊断数据的4字节,描述了模块的当前状态。这4字节的内容和OB 82的启动信息的字节8~11的内容相同。数据记录DS 1包含了数据记录DS 0内的4字节。此外,还有模块的诊断数据。
当使用的GPU具有DPV1能力和一个相应的从站时,可以使用系统功能块SFB 54 RALRM来获取更多的诊断中断信息。
重庆西门子S7-1200PLC模块代理(优势价格)