- 发布
- 浔之漫智控技术(上海)有限公司
- 品牌
- 西门子
- 型号
- 模块
- 产地
- 德国
- 电话
- 15821971992
- 手机
- 15821971992
- 发布时间
- 2023-07-19 17:06:40
复合数据类型是通过基本数据类型组合成的。复合数据类型的定义超过32位或是由其他数据类型组成的数据。复合数据类型要预先定义,其变量只能在全局数据块中声明,可以作为参数或逻辑块的局部变量。
①数组( ARRAY)。将一组同类型的数据组合在一起,形成一个单元。
②结构( STRUCT)。将一组不同类型的数据组合在一起,形成一个单元。
③字符串( STRING)。包含了多254个字符(CHAR)的一维数组。
④时间和日期( DATE_AND_TIME)。用于存储年、月、日、小时、分钟、秒、毫秒和星期,占用8个字节,用BCD格式保存,星期天的代码为1,星期一到星期六的代码为2~7。
⑤用户定义的数据类型UDT( User-Defind Data Types)。由用户将基本数据类型和复合数据类型组合在一起,形成新的数据类型。
可以在数据块DB和变量声明表中定义复合数据类型
西门子S7-1200中的比较指令包括了值大小比较指令、是否在范围内指令以及有效性无效性检查指令。使用值大小比较指令,可以比较两个数据类型相同的数值的大小。
西门子S7-1200中的值大小比较指令按照比较类型的不同可以分为六种类型:等于、不等于、大于等于、小于等于、大于、小于。
使用S7-1200的比较指令时,可以从比较指令的下拉菜单中选择数据类型,支持的数据类型包括整数、双整数、实数、无符号短整数、无符号整数、无符号长整数、短整数、字符串、字符、时间、DTL和长实数等。
比较指令在程序中只是作为条件来使用,用来比较两个数值IN1与IN2的大小,当IN1和IN2满足关系时能流通过。
在范围内指令确定输入值是否在参数MIN和MAX指定的取值范围内,若输入值在指定范围内,则输出状态为1。在范围外指令确定输入值是否在参数MIN和MAX指定的取值范围外,若输入值大于等于MAX或输入值小于等于MIN时,则输出状态为1。
下面我们通过一个实例来说明比较指令如何使用。当整数MW10大于等于128且在MW20和MW22所存储的数值范围之间时,输出Q0.0接通。
一、编写程序。在项目视图中打开OB1,拖拽比较指令大于等于到程序段1中,双击比较指令的问号选择整数类型,输入个操作数地址MW10,输入第二个操作数地址128,拖拽在范围内指令到程序段1中,单击问号处选择整数类型,输入参数小值MW20,输入值MW10,输入参数大值MW22,在范围内指令后面插入输出线圈,输入地址Q0.0,这样一个简单的比较指令的应用实例就完成了。
二、下载程序到PLC。单击保存项目按钮保存项目,单击下载按钮将所有块下载到PLC。
三、查看程序运行情况。单击“转到在线”,单击监视按钮观察程序的运行情况,可以看到MW10的值默认为0,小于128,Q0.0不亮。在项目树中单击打开监视表格文件夹,双击添加新监视表格,可以看到项目树中添加了监视表格1,同时在工作区打开了监视表格编辑器。输入地址MW10、MW20、MW22和Q0.0,单击监视按钮,修改MW10的值为150,此时不在MW20和MW22的取值范围内,Q0.0仍然不亮。修改MW20和MW22分别为100和200,则可以看到Q0.0亮。