接上一期在贴吧看见的求助帖(上图看得见水印),因为没人回复,发帖的楼主好像删除了帖子。结果我抽时间用博图15.1,S71200做了一个,希望给需要帮助的新人能够起到作用,感觉有用的话可以关注一下我的公众号低压电工,最后水平有限有不对的地方请高手指正。
前期准备
首先,做程序之前要明白,我们的任务是什么,我们需要选择什么指令来实现。由图可知其任务,就不过多的描述了,然后通过判断可以采用计数指令和比较指令来实现。
其次,我们需要哪些输入点哪些输出点,统计出I/O数量。由图可知,需要一个输入点按钮SB,两个输出点1#灯,2#灯。(电气接线就不讲了)
输入 | 功能 | 输出 | 功能 |
I0.0 | 启动按钮SB | Q8.0 | 1#灯 |
Q8.1 | 2#灯 |
运用博图软件来编写程序
第一步,打开博图软件管理器,点击新建项目
第二步,更改项目名称为编程实例灯控制(随意取的)
第三步,点击创建
第四步,跳转至Poratal视图
第五步:点击设备与网络
第六步:点击添加新设备
第七步:选择并打开控制器
第八步:随便选择一个S7 1200系列的CPU
第九步:点击添加,并自动跳转至设备视图
第十步:查看CPU信息,其I/O点数量,有我们需要的DI点且满足使用数量,但没有DO点,需要我们添加一块DO模块。
第十一步,找一块DO模块(其实就是随便选择的),添加DO模块
第十二步,对需要的变量修改名称
第十三步,开始编写程序,点击程序块,点击OB1,进入程序编写界面,如下图:
第十四步,添加一个常开触点,用于启动按钮SB输入信号
第十五步,添加一个加计数,并选择确定
第十六步,将IO点按钮SB I0.0添加至常开触点,CTU的PV值设为4(每按4下就会循环,所以设置为大于等于4就可以了),R复位我们设置一个中间变量M0.0,同样CV为当前计数值也设置一个中间变量MW2
第十七步,编写程序段2用于按第一次1#灯亮,首先选择并添加一个比较指令等于
第十八步,对这个比较指令进行设置,数据类型选择Int,上方输入计数次数,下方设置为1。
第十九步,将程序2编写完成,添加输出Q8.0,当计数为1时1#灯得电亮。
第二十步,同样的方法编写计数器值为2时2#灯得电亮。
第二十一步,同样的方法编写计数器值为3时1#2#灯同时得电亮。
第二十二步,同样的方法编写计数器值为4时,对其计数器复位这时计数器为0,因为计数器不等于1、2、3,因此1#2#灯都处于熄灭状态,所以不需要做其他步骤(个人理解)。
第二十三步,对程序进行编译无报错,至此程序编写完成。
验证程序
1、打开仿真并将程序下载值仿真CPU里面,(需要S71200仿真步骤的可以在微信公众号留言,我有实际出一期)
2、打开在线监控
3、运用仿真对按钮SB置位一次1(仿真按钮按一次),至此1#灯得电,视为灯亮
4、运用仿真对按钮SB再次置位一次1(仿真按钮被第2次按下),至此2#灯得电,视为灯亮
5、运用仿真对按钮SB第3次置位1(仿真按钮被第3次按下),至此1、2#灯同时得电,视为灯亮
6、运用仿真对按钮SB第4次置位1(仿真按钮被第4次按下),至此1、2#灯同时失电,视为熄灭,同时复位计数器CTU
由此可见,此编程方法可行。