关于s200的子程序,我继续问一些很基本的问题,还烦请前辈指
教。
1:在主程序里,用了一个定时器T38,计数器C0,我想在子程序
中读出他们的数值,比如。直接把C0(或T38)的值用转换指令(I_DI)转
换成双整型,然后用(DI_R)转换成实型,然后进行浮点数运算
,可以吗?
2:在主程序中的内部存储器标志位M,在主程序中修改,在子程
序中会相应的改变吗,比如在主程序中,把M0.0置位,然后进入
子程序,子程序中的M0.0自然就是置位的。原本M0.0是个常闭的
话,执行置位操作后就是断开了吧?
3.如果以上两条都成立,我能不能这么理解,V,I,Q,M,SM,S,T,C
这些存储区,在主程序,子程序是通用的,可以随便传递?
4.第四个问题也让我纠结好久了。比如,书上有这么一句话,
CPU226模块变量存储器的有效地址范围为:V(0.0-5119.7),VB
(0-5119),VW(0-5118),VD(0-5116)。我想问的是,这四个存储区
是独立的吗?比如,我在VD0里存了一个实数M,然后我再用VB0
存个整数N,N会把M覆盖吗?如果能覆盖,那就是说我用了VD0,
后,VB0-VB7已经都被占用了,不能用了,如果这样也太恐怖了
点吧。
5.还有,触摸屏上有设on,设off操作,如果对常开触点操作,很好理解,设on就闭合,设off就断开,如果对常闭触点操作呢? 设on后常闭还是闭合?还是动作一下,变成常开?如果变成常开,那设on功能不就错了吗?还是应该理解成,对常开触点,设on功能让其闭合,对闭,仍然保持常闭,不动作。
自学PLC,无人指教,这个论坛是我最大的希望寄托啦,还请回答
的越详细,越通俗越好。跪谢……
问题补充:
我就第四个问题,做一下补充提问。
1.比如双整数到整数的转换(DI_I):输入VD40,输出为VW40.(VW42,VW43是不是在转换后,仍然存着一些类似于乱码的东西)。
2.整数到双整数的转换:输入VW0,输出为VD0.
这两种做法是不是不规范,因为输入,输出用到了同一个存储区。
3. 传送指令(MOV_R),输入为VD4,输出为VD4,这种方法是不是不规范。 因为我要从触摸屏输入一个数到VD4,然后把地址&VB4传给VD1000,然后在子程序读VD1000里面的值。
我要问的是,MOV_R 输入、输出均为VD4合适吗?还有这个用间接寻址的思路,有什么问题吗?
再次谢谢你们的回答。
图片说明:
最佳答案
1、在子程序中完全可以引用主程序中变量的数值。即在子程序中可以引用全局变量。
2、在主程序中修改可某个M标志,在调用子程序中该M标志肯定也会相应改变。
3、所有全局变量在主程序、子程序中是通用的,可以随便传递。
4、V(0.0-5119.7),VB(0-5119),VW(0-5118),VD(0-5116)。我想问的是,这四个存储区
是独立的吗?
不是独立的,是重合的。简单地讲由八个V(位)组成一个VB(字节),又由两个VB(字节)组成一个VW(字),又由两个VW(字)组成一个VD(双字)。换言之,一个VD(双字)包括两个VW(字),一个VW(字)包括两个VB(字节),一个VB(字节)包括八个V(位)。它们的地址排序:
V0.0,V0.1,V0.,2......V0.7,V,1.0......;
VB0,VB1,VB2......;
VW0,VW2,VW4,VW6......;
VD0,VD4,VD8,VD12......;
5、触摸屏上有设on,设off操作问题。这个问题不要一概而论。要分清开关与按钮不一样。
、如果设置为选择开关,即ON/OFF两个位置是保持的。一般这种应用ON接常开,OFF接常闭。
此时可理解为设on功能让其闭合,对与OFF的常闭,仍然保持常闭,不动作。如果设为OFF其常闭变常开,ON变为常开。
、如果设置ON/OFF各为按钮,这个两个按钮按下、抬起都是一个由0变为1,、再由1变为0的过程。这种与开关不同就是不保持,所以在编程时有注意正确应用这种上升沿或下降沿来实现通与断的操作。
、硬件中有开关与按钮,两者应用的方法不同,在软件中也如此。
提问者对于答案的评价:
不好意思,回复迟了。有事耽误了。
我的问题写的很繁琐,感谢你们能耐心读完,并认真讲解。我很想知道你们的联系方式,但不知道怎么看,呵呵。我正在改我写的程序,祝愿我好运吧。感谢,@song1983,@阿鸣,@WWCWWC,当然,@silen的回答也很喜感。
@阿鸣 的回复,我看了,莫名的感动。
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc216866.html