今天为大家介绍一个用博图软件编写动态秤称重的案例,是已应用到实际工程中案例的一部分,下面对该案例的工艺要求进行描述。

物品称重根据秤的状态一般有两种方式

动态称重和静态称重。其中静态称重的秤是静止不动的,物品过秤后,即可得到重量数据。如果秤的精度高得出的数据也准确,但如用到自动产线,生产效率就太低了。而动态秤是随着自动流水线一起运动的,最常用的是皮带秤。物品经辊筒输送机送至动态秤,动态秤称得重量后,将数据传给上位机或PLC,随后进入输送分拣线,根据重量的不同,由PLC给出指令,物品分拣输送至不同的格口,本例以物品重量数据传送给PLC为例。因皮带秤是运动的,机械振动不可避免,因此得出的重量数据肯定会有误差,消出误差的一种方法就是在物品流经动态秤皮带的过程中,多次称量数据求和后取平均值。

工艺流程简图如下图1所示

s71200高速计数器编程实例(用S7-1200编写动态秤称重)(1)

图1

当物品放置到辊筒机头部时会触发光电1启动辊筒机运行,运行到尾部光电2时,触发皮带秤启动。光电3上升沿时,开始称重。假设每200MS皮带秤传一次数据给PLC,而物品经过皮带秤的时间为1.1秒,那么PLC可以得到5次数据,相加后求平均值,算出的数据就会比较准确。当然皮带秤具体传送数据时间、物品流经皮带秤的时间要根据称重传感器的型号、性能和皮带秤的转速等实际情况而定,这里只是举例。

一、硬件配置

S7-1215C PLC一台,称重传感器一套(带RJ45通信口),不同重量砝码若干。

二、软件准备

电脑安装博图V17软件。

三、程序编写

1、打开控制面版,新建一个名称为“动态秤称重”的项目,点击项目视图,在项目树下添加一个1215C PLC,分配IP地址。

如下图2所示:

s71200高速计数器编程实例(用S7-1200编写动态秤称重)(2)

图2

2、双击OB1,在右边指令集中选中“通信”选项下的MODBUS TCP客户端指令MB_CLIENT,将其拖拽至程序编辑区,并填写各管脚参数。此指令用于PLC和称重传感器建立MODBUS TCP通信,PLC为客户端,接收服务器(称重传感器)发送过来的物品重量数据。

如下图3所示:

s71200高速计数器编程实例(用S7-1200编写动态秤称重)(3)

图3

3、编写重量数据处理指令:双击项目树—PLC_1—程序块—添加新块,在弹出的图框中选择FB程序块,语言选择SCL。在打开的FB程序块编辑区建立输入输出变量,编写SCL代码。

如下图4所示:

s71200高速计数器编程实例(用S7-1200编写动态秤称重)(4)

s71200高速计数器编程实例(用S7-1200编写动态秤称重)(5)

图4

4、SCL代码解析:当图1中光电3被触发时开始计时,每210MS接收一次重量数据并传至相应的存储区,利用间接寻址可将5次采集的数据存放到数组当中。此处时长设为210MS比上文中所说的200MS多10MS是为了保证准确接收到数据。采集完后求和并除以采集次数,得到平均数据传到触摸屏上显示。

5、仿真程序编写:考虑到很多学员没有实物,我们可以利用博图软件强大的仿真功能通过编写仿真程序来测试是否达到功能要求。在OB1中编写的仿真程序模拟称重传感器每200MS发送一次数据。

如下图5所示:

s71200高速计数器编程实例(用S7-1200编写动态秤称重)(6)

s71200高速计数器编程实例(用S7-1200编写动态秤称重)(7)

图5

四、仿真效果

因为采集周期200MS实在太短,不好观察数据的变化,因此将其改为2.8秒,数据的传送也相应改位3秒,采集次数也改为3次。

仿真的效果如下图6所示:

s71200高速计数器编程实例(用S7-1200编写动态秤称重)(8)

s71200高速计数器编程实例(用S7-1200编写动态秤称重)(9)

图6

图6第一张图为PLC监控表中的数据,共采集了三次数据,分别是106、104、108,经FB1函数块SCL代码处理后,得到平均值为106。第二张图为触摸屏数据显示,与PLC的数据一致。

本案例为实际工程案例中的一部分,并将之简单化、理想化,实际还要考虑现场诸多情况及故障报警处理,而且重量数据一般都是浮点数,所有关于重量的数据地址应设为浮点数类型。因此,以上的程序仅供参考、学习,希望对广大学员有所帮助。

(技成培训网原创,作者:何晓刚,未经授权不得转载,违者必究)

超全电气学习资料

s71200高速计数器编程实例(用S7-1200编写动态秤称重)(10)

,