关于PLC变量空间变量的补充

X、Y、M、S、T、C
一、X,Y,M,S逻辑量
如果还要设计上升沿,下降沿标志位,XYM均要在增加两倍。
二、T变量
定时器使能,逻辑量
Tx_en;
定时器输出,逻辑量
Tx_out;
Tx_out需要上升沿,下降沿标志位
定时器设定值,word量
TWx_SP;
定时器累计值,word量
TWx_ACC;
三、C变量
计数器输入,逻辑量
Cx_IN
计数器复位,逻辑量
Cx_RST
计数器输出,逻辑量
Cx_out
Cx_out需要上升沿,下降沿标志位
计数器设定值,word量
CWx_SP
计数器累加值,word量
CWx_ACC
这样算下来
X=100,标志位200,合计300
Y=100,标志位200,合计300
M=1000,标志位2000,合计3000
S=64
T=256,T_en=256,T_out=256加标志位512合计:64字+512字(两个word量)=576字
C=256,C_IN=256,C_RST=256,C_out=256标志位512,合计80+512(两个word量)=592字
D=2500
总计:300+300+3000+64+576+592+2500=7332字
另外还有:特殊变量未算
混沌,如果是设计成这样,恐怕资源用的光光呀
1

评分人数

  • aleyn

输入点X=1600
输出点Y=1600
设计的时候是不是太多了呀,这个规模绝对是高档PLC
定时器和计数器,能否在压缩,减少一半
混沌输入输出点总计20多个,这么多定时器,太多了

TOP

我也说说我对对于上升沿,下降沿标志位的处理初步见解:

XYM,增加一倍,一套用来存放当前扫描变量,一套存放上次变量。

处理上升沿指令时,比较当前变量与上次变量,如如当前变量为1,上次变量为0,则上升沿指令执行。
处理下降沿指令时,比较当前变量与上次变量,如如当前变量为0,上次变量为1,则下降沿指令执行。

执行完一遍后,在将所有当前变量值复制到上次变量值。

如有不当之处,请拍砖啊,谁叫我也是这方面的初哥呢?

TOP

混沌,是设计成这样的,有20KRAM用呢。

这个细节,确实要大家商量一下。

当时,目标越定越高啊。

TOP

这是混沌第一版,参照s7-200的
别定得太高了
另外,逻辑量的字节寻址,字寻址,是否还要变量,存储指针呀
例如西门子s7-200
双字MD
字量MW0
字节量MB0
bit量M0.0
这些是不是要变量存储指针呀
还有模拟输入,输出量,也要预留空间的

TOP

炳哥的建议,边沿处理,存储上一周期值,本周期值
这些是需要运算的
是否可考虑去掉ldp,andp,orp,弄个边沿捕捉指令
动态分配算了,需要处理边沿的就把上一周期的值存到M变量中去
把XYM节省的都用来增加M变量,这样就可以节省很多呀

TOP

我记得,欧母龙好象是加单独的边沿捕捉指令来实现边沿指令处理功能。

TOP

AB的也是的
西门子好像也是吧

TOP

纠正你一个原理错误,然后关键的内容就是关于边沿的处理,看另一个帖吧。

X Y M S 都是位变量,100个位,还不足7个字,所以计算错误

边沿,参考我在你另一个帖里面的回复

TOP

可乐的帖子上写的是
“X0.0 - X99.15 一共 100个字”
x0为字,x0.0才是逻辑量
所以我的计算没错

TOP

我家可乐要送人了,可怜的金毛,一岁多了

呵呵,不好意思,是我弄错了。

TOP

Review opelc.org on alexa.com