前一段时间有一网友电话求助,说自己做的称重设备(皮带秤)读取到的数据值总是一直在跳变,无法正确识别称重传感器读取上来的值来判断产品的重量,虽然在程序中增加了取平均值功能(模拟量输入按plc扫描周期次数求平均值程序),但效果不理想。 我思考了一下回复,让他做一个用变址方式读取称重数据N次,然后取平均值的做法得到了解决。大致的意思是取一个读取称重数据数值的标志位,触发每次需要读取的数据用变址方式存放在一个连续数据区域,当读取数据到达设置次数时取一个求平均的结果,并清除原存放的数据后连续循环。因为友人的PLC是第三方的,这里就不再详细描述控制过程。 记得前一些天看过西门子200smart PLC具备有数据日志的功能,一直想做这个实验。联系到该问题,如果第三方PLC能够具备这个数据日志功能可能处理这个问题会更容易一些。于是,打开S7-200 SMART PLUS帮助文件,查找到“功能”—“数据日志”及系统手册内容看起来。 数据日志概况:“只有固件版本V2.0或更高版本的S7-200 SMART CPU支持数据日志功能,在STEP 7-Micro/WIN SMART软件中,可以通过数据日志向导创建最多四个数据日志文件,他们存储在PLC的永久存储器中。每个数据日志都是一个单独的文件,最大为 2 兆字节”。 如果网友能够选择西门子200samrt做控制元件,并配置以smart line V3触摸屏做的项目,则这个问题处理起来可能会变的容易一些。 实验器材:(硬件) 1)一台安装了200 samrt V2.1软件的电脑 2)一个实验用PLC CR60 3)相关连接的网线及PLC电源线各一条
编程操作: 1)打开编程软件;选择一个与实际PLC型号一致的CPU,如图:
2)选择“工具”下的“数据日志”向导,并勾选“数据日志0”如图:
3)下一步后,选择“数据日志0”的文件名称,此处选择默认名称,记录的文件名称将以此名称记录在Excel文件中,允许用户修改日志文件名称,如图:
4)继续操作下一步,为“数据日志0”配置最大记录数量,默认值1000,最大数位65535条。采用默认的选项给每一条记录配置时间、日期戳。为实验能够快速验证,先新建20条数据试试,如图:
5)继续下一步,定义“数据日志0”的具体记录数据,定义了3个相关的数据名称及数据类型,共计占7个字节数,如图:
6)继续下一步,为“数据日志0”分配储存器地址,这里选择从VB1000开始的7个字节为记录地址区,如图:
7)继续下一步,系统自动生成3个子程序组件,如图:
8)完成向导的配置后,在子程序中生成一个子程序(DAT*_WRITE),如图:
在200smart 软件中还可以在程序中查找到这个向导生成的子程序,如图:
9)该子程序用调用条件触发需要用沿触发方式的目的是为了节约有限的EEPROM写入次数。因为是验证程序,我采用秒脉冲加上升沿触发,子程序没有其它管脚定义,仅仅是一个字节型的输出错误代码储存区,编译后没有错误,如图:
10) 连接好PLC电源及网线,选择网络接口卡,注意这个接口卡必须是电脑实际的物理网卡。如果无法找到cpu,可以在“网上邻居”—“本地连接”—“属性”中设置电脑的IP地址,PLC默认IP地址192.168.2.1,这里将电脑的IP地址设置为192.168.2.10,子网掩码不做变更,IP网段必须是在同一个网段上,将程序下载到PLC中,如图:
11) 设置的通讯连接正常后,下载的程序运行情况,没有错误,如图:
12) 数据日志的数据并上传数据日志的方法:点击“PLC”按钮下的上传小三角箭头后,系统下拉菜单弹出选择“数据日志”,选择“数据日志0”数据存放途径后,选择“上传”,窗口下侧显示上传时的进度条及文件大小,如图:
13) 在指定的文件夹中找到那个存放数据日志的文件,并用Excel方式打开,如图:
上诉隐射数据日志地址是根据向导定义的数据类型编排而成的,并注意西门子数据类型格式。 使用数据日志时需要注意的问题: 1)由于是需要实时记录数据日志,必须事先调校好PLC运行的实时时钟,方法:点击“PLC”按钮,选择“设置时钟”,选择“读取PC”,选择“设置”,并将设置下载到cpu中,如图:
2)CPU的EEPROM有擦写次数限制,不能无限次数据存储,所以使用沿触发调用 DATx_WRITE 指令节约写入次数。 3)如果需要记录较长的数据日志条目数,请在“选项”中的记录数据日志设置到合适的条目数,记录条目数范围:1~65535条。条目记录机制将以覆盖的方式,当条目数记满设置条目数后,新值将覆盖原记录的条目数据上,原值被自动溢出。
4)一个数据日志最大记录字段允许有200字节数,如果需要包含时间、日期戳(每一个时间、日期戳占3个字节),则最大用户记录的字节数减小194个字节。例子中已用了7个字节作为数据日志记录条目数(共计13个字节)。 5)特殊寄存器标记字节SMB480~SMB515为只读数据日志的状态及报警信息,用户可以通过特殊标志字节或者Error错误信息查看数据日志指令运行情况。
|