作者 | 主题 |
---|---|
holdkcsxyz 至圣 经验值:13022 发帖数:1815 精华帖:22 |
楼主 2016-04-12 13:06:58
主题:S7-200Smart控制针式、热敏打印机打印实时曲线( 类似于简易通讯控制两台电机走曲线) 最近因项目需要,用SMART实现了实时曲线的打印功能(温度、浓度两条可扩展到n条,应该早有PLC前辈做出来,不过这程序是我自己参考着C写的,用S7-200SMART实现起来网络数较少,因为它的存储区相对较大,适用两种EPSON通讯指令集的微型打印机,程序用到三个FOR循环,指针,填表,FIFO,以及自由口通讯指令,西门子小型PLC的结构化编程确实是结构清晰,虽然日系的CALL,SRET用起来也还好。) 平常也用日系的PLC,不过就本程序而言用SMART的过程中发现扫描周期确实有很大的提高SMW22,26都是个位级的,当然也许我的这个项目程序(程序大小60KB)不够大,但是也说明SMART确是良芯之作)。适当时候在本帖分享源代码,看看说明书其实很简单,关键是对指令的熟悉,以及思路。
说明: 曲线打印带标尺子程序用到 Q15.1-Q15.3; VB7800-VB7995(原CPU是ST40,选这个V区的原因是为了兼容SR20的V区(最大到VB8000)); 曲线变量采样时间的典型值是937,1875,3750,7500毫秒;曲线变量可能需配合其它的一些滤波子程序使用,以使曲线变量平滑。 曲线变量:如果是湿度则正好是0-100;如果是温度没有落在0-100区间需标量化处理:0---对应温度下 限100---对应温度上限。曲线变量还可以是典型值采样时间不失真并且标量化成0-100数值的的任意曲线。 开始开关是个开关使能,非脉冲触发。 注意要将0号中断子程序int_0分配为发送完成中断,并在发送完成中断中调用发送完成中断中的子程序主要功能清空发送缓冲区。 相或字节应初始化成 16#01 例程非库,因此不太通用,但肯定可以用。只能复制黏贴并保留其中的曲线打印带标尺子程序来使用。提供给没关注过此类应用,而且有可能需要用到的朋友。 以下是项目实际的打印效果(打印机厂家1微打产品) 以下是曲线变量是湿度变量时的打印效果(另一个打印机厂家2微打产品) 以下图片是送曲线变量一个定值(RH=75%) 另一台设备的实验情况(湿度需要打印的那个单独数据作强点的滤波会更好) |