先介绍下本人情况:新手,做过2个很简单的小项目,编程处于幼稚阶段。
背景:原项目使用外部仪表或工控软件作为控制来源,plc基本只需要根据相关信号操作外部设备,最多联合触摸屏进行简单的显示;最近考虑将仪表或者是软件的控制功能都移到plc,plc自主分析决定工作流程(本来就是他的活),仪表只做变送器,软件用来管理数据。暂把这部分程序称为模拟表程序。
我的做法:我先针对一台,用全局变量具体而微的写了一个,测试完成;然后把这个程序改造成子程序包,方便以后反复调用。
问题:1,由于子程序局部变量的不可预测性,所有的OUT都用了IN/OUT,但一些中间变量temp,并不是在每个周期都会被赋值,同样,需要改成IN/OUT,这些外部不需要知道的变量又需要命名,书写,极为麻烦。
2,我考虑开辟一块存储区,将这块区域的首地址传入这个模拟表程序,让所有的变量运算都在这块存储,也就是说,每次调用模拟表程序,我还需要告诉他程序运行时的临时存储区,基本代替了原来的局部变量区;
好的,现在我回过头去看,所有使用到的变量都能在我的全局变量存储区中找到(区别仅仅是有的没有命名),我问自己,我还用把他写成子程序包吗? 我为什么不在需要的时候写一个,就像一套设备配一个表,你说又来一套设备?好,我再组装一台。区别仅仅是,需要把程序中变量名替换下。
我很沮丧!
3,继续第2点,反复调用子程序,多层嵌套,指针变量寻址,这些会拖慢plc的运算速度,好处是方便,不会搞错变量名
4,如何建立库?基本的我倒是会,但能不能把一个具有多SBR的子程序组编成一个库,这样也不会调用的时候还少复制一个。
请教各位老师!非常困惑。。。