西门子S7-300入门级教程02-数据类型篇01

<a href=https://www.xmzyj.com/ximenzi>西门子</a>S7-300入门级教程02-数据类型篇01″ inline=”0″></p>
<p class=S7-300

实验一 基本数据类型

1) 目的

了解基本数据类型:BOOL / BYTE / CHAR / WORD / DWORD / INT / DINT / REAL / S5TIME / TIME / DATE / TIME_OF_DAY。

2)实验内容

①设计一个FB(FB101),包括5个输入参数(In1、In2、In3、In4、In5),参数类型分别为如下类型:Bool、Dint、Time、Date、S5Time;4个输出参数(Out1、Out2、Out3、Out4),参数类型分别为如下类型:Bool、Byte、Real、Time_Of_Day;1个输入输出参数(InOut1),参数类型为Time_Of_Day;它的实例数据块中包含3个静态局部数据(Stat1、Stat2、Stat3),数据类型分别如下:Char、Word、DWord;

②将字符’s’、’ad’、’4321’分别Move给Stat1、Stat2、Stat3 ,并将Stat1的数据传递给Out2 。

③In1控制In2转换为REAL型数据,并输出到Out3 。

④InOut1减去输入In3 ,得到的结果给Out4。

⑤在S7-PLCSIM中测试以上程序。

⑥在FB101新增加一个输出参数Out5(Bool型),In4输入一个Date型数,与D#2014-07-31进行比较,若相等,启动延时S5定时器T2,定时时长由In5确定,延时时长到后输出到Out5。下载后再次在PLCSIM中测试。

3)实验流程

在Blocks中右键插入一个FB101,双击打开,添加接口参数如下图所示。

IN

西门子S7-300入门级教程02-数据类型篇01

图1-输入参数

OUT

西门子S7-300入门级教程02-数据类型篇01

图2-输出参数

InOut

西门子S7-300入门级教程02-数据类型篇01

图3-输入输出参数

STAT

西门子S7-300入门级教程02-数据类型篇01

图4-静态局部数据

将字符’s’、’ad’、’4321’分别Move给Stat1、Stat2、Stat3 ,并将Stat1的数据传递给Out2 ,编程如下图所示。

西门子S7-300入门级教程02-数据类型篇01

图5-MOVE指令

In1控制In2转换为REAL型数据,并输出到Out3 ,通过STL中的DIR指令将DINT类型数据转换为REAL类型数据,编程如下图所示。

西门子S7-300入门级教程02-数据类型篇01

图6-DIR指令

InOut1减去输入In3 ,得到的结果给Out4,两者都是以毫秒为单位所以可以直接想减不需要转换,编程如下图所示。

西门子S7-300入门级教程02-数据类型篇01

图7-SUB_DI指令

在S7-PLCSIM中测试以上程序

在OB1中调用FB101,创建背景DB101,然后对FB101接口参数进行赋值,根据数据类型赋值为对应的M区地址,如下图所示。

西门子S7-300入门级教程02-数据类型篇01

图8-调用FB101

这是加了out5之后的加入,原来只有到out4,所以当重新添加引脚后,记得先进行块更新(右键块就可以看到有更新选项),然后在重新下载进行调试。

打开S7-PLCSIM,下载Blocks,进行测试。

程序一测试结果:out2

西门子S7-300入门级教程02-数据类型篇01

图9-程序一测试结果

程序二测试结果:将In1置为true,并将In2修改为10进制的24627,可看到Out3输出为REAL类型的24627.0。

西门子S7-300入门级教程02-数据类型篇01

图10-程序二测试结果

程序三测试结果:将In3修改为10进制的36000(也就是TIME的6m),InOut1修改为10进制的360000(也就是TIME_OF_DAY的1:00:00:000),因为他们都是以毫秒为单位,所以可以直接加减,可看到Out4输出为TIME类型的54m。

西门子S7-300入门级教程02-数据类型篇01

图11-程序三测试结果

程序四测试结果:In4输入一个Date型数,在变量表中给MW10,再传到in4,与D#2014-07-31进行比较,若相等,启动延时S5定时器T2,定时时长由In5确定,延时时长到后输出到Out5。

不相等时:

西门子S7-300入门级教程02-数据类型篇01

图12-程序四测试结果(不想等时)

相等时:

西门子S7-300入门级教程02-数据类型篇01西门子S7-300入门级教程02-数据类型篇01

图13-程序四测试结果(相等时)

4)总结

1、 不同数据类型之间的转换,要使用相应的指令,如DTR(DWORD to REAL)。灵活使用MOVE指令,在涉及到不同数据类型转换的时候,MOVE的功能十分强大。可以通过MOVE将不同的数据类型转换成DINT后再进行相关的处理。尤其是在涉及到REAL类型的数据时候,要注意MOVE的应用。

西门子S7-300入门级教程02-数据类型篇01

图14-转换指令

2、 在编程过程中,无论是硬件组态或者编程,都要先保存,再编译,后下载。

敬请期待下一篇数据类型篇02-复杂数据类型_1

PS:友情提醒,所有文章都是一个系列,是连贯的,顺着看效果更好~

作者简介

谭俊豪:重庆大学机械工程学院学士,西门子中国公司培训生

本文为原创文章,于头条首发,欢迎转载,请注明出处和作者!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据