最近因项目需要,用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%)
-
引用 fung 2016/4/19 10:25:52 发表于2楼的内容
-
引用 bonbo 2016/4/19 21:55:28 发表于3楼的内容
-
引用 wangchen 2016/4/20 9:53:44 发表于4楼的内容
-
-
xueba 发表于 2016/4/23 18:24:54
嘿嘿,你能用就行,我之前发过一个没上锁的。自吹一下:我改进后井井有条一点也不乱,比厂家技术支持刘工给我的C代码的算法,还简洁,不应贬低梯形图,也不应神话类PASCAL的SCL(各有优缺点),能写出简洁可用的程序最好,SMART的指针很类C所以很好用的,我接触200以及SMART并用于开发也不过不到两年的光景,去年4月我第一次用SMART做6台电机的简易运动控制,不太会用SMART,还跑到工控网芳季大侠的主页提问了一下,他比较忙没回应。我自己按照开发电子的经验找西门子帖子琢磨,后来发现他天天在西门子技术论坛做解惑(这论坛确实不错),所以我也时常跑过来瞧瞧。
引用 xueba 2016/4/23 18:24:54 发表于5楼的内容
-
引用 nihaosb 2022/9/28 8:04:16 发表于6楼的内容