h30631
级别: 略有小成
精华主题: 0
发帖数量: 90 个
工控威望: 230 点
下载积分: 812 分
在线时间: 339(小时)
注册时间: 2012-09-05
最后登录: 2018-04-17
查看h30631的 主题 / 回贴
楼主  发表于: 2012-12-19 17:54
請問各位大師們,為什麼用GX 模擬PLC 去跑程式時,DADDP 指令時,數字會亂跳,如圖片
但是實際上監控實體PLC 就不會有這個問題,請問是哪裡出錯了??

[ 此帖被h30631在2013-01-03 17:03重新编辑 ]
hefei3903
级别: 略有小成
精华主题: 0
发帖数量: 187 个
工控威望: 450 点
下载积分: 1105 分
在线时间: 223(小时)
注册时间: 2006-10-12
最后登录: 2024-05-17
查看hefei3903的 主题 / 回贴
1楼  发表于: 2012-12-19 19:04
T0,T1组成的是脉冲输出程序,D350中的值应该会每隔0.22s跳一次。
h30631
级别: 略有小成
精华主题: 0
发帖数量: 90 个
工控威望: 230 点
下载积分: 812 分
在线时间: 339(小时)
注册时间: 2012-09-05
最后登录: 2018-04-17
查看h30631的 主题 / 回贴
2楼  发表于: 2012-12-19 19:47
樓上說的沒錯,但是我的重點是在於 一次只能+20 ,但是他一次加了不只20,反而加了好幾萬去了
實際接plc 實體去跑卻又是正常的,一次加20,因為仿真軟件設定沒有設定好嗎?
sjm213
有小知识,无大学问。
级别: 论坛版主

精华主题: 7 篇
发帖数量: 5168 个
工控威望: 7391 点
下载积分: 156854 分
在线时间: 3123(小时)
注册时间: 2007-11-21
最后登录: 2024-05-18
查看sjm213的 主题 / 回贴
3楼  发表于: 2012-12-19 21:32
1,根本原因在于你用了DADDP,这是个32位的指令。实际计算过程是把[D351 D350]与[T1 T0]相加后放入了[D351 D350];
2,仿真与实机的区别在于,仿真默认扫描周期是100ms的,而实机的扫描周期会原低于这个数。这就造成仿真在T0计时到后,其输出触点驱动了T1计时,T1的数值马上变成了1,所以扫描到达T0的上升沿,执行加法处理时,就是00000000+00010014--》00010014(都用16进制表示)的计算过程,这个十六进制的数换成十进制就是65556;执行到第八遍的时候,这个数就是65556*8=524448。而因实机的扫描周期远低于100ms,则在实机上执行该程序,T0计时到达,扫描到T1时,该数值还没有累积到0.1S,所以T1的数值还是0没有变成1,继续执行加法处理时,就是00000000+00000014--》00000014的计算过程,这个十六进制的数换成10进制就是20,得到了想要的结果;
3,将DADDP指令换成16位的ADDP指令可以避免这种情况;
4,将T0上升沿后做加法运算这一句紧放在T0输出线圈这一句后面可以避免这种情况;T0输出线圈这一句放在RST T0这段后面更好。
h30631
级别: 略有小成
精华主题: 0
发帖数量: 90 个
工控威望: 230 点
下载积分: 812 分
在线时间: 339(小时)
注册时间: 2012-09-05
最后登录: 2018-04-17
查看h30631的 主题 / 回贴
4楼  发表于: 2012-12-20 08:27
感謝版主大師的指導~
依照指示,真的如板大所說,原來是時序的問題
所以我這種寫法會有編寫的順序問題,
可以在請問一下,執行 dadd這個指令 我知道的是會有一個D上位&D下位,與他相加的T也會自動有一個上位&下位嗎?
  [ DADDP D0 T0 D0  ]  =  D1 D0 +  "T1 T0 " ??
因為我在煩惱,T 如果計時超過16位元的範圍,該如何讓他"先存到D後再重新計時"
h30631
级别: 略有小成
精华主题: 0
发帖数量: 90 个
工控威望: 230 点
下载积分: 812 分
在线时间: 339(小时)
注册时间: 2012-09-05
最后登录: 2018-04-17
查看h30631的 主题 / 回贴
5楼  发表于: 2012-12-20 08:47
我沒有QQ耶...ㄏ
guochunyi
直读解西门屏HMI口令 。。。
级别: 论坛版主

精华主题: 5 篇
发帖数量: 8166 个
工控威望: 10295 点
下载积分: 20929 分
在线时间: 2951(小时)
注册时间: 2007-03-01
最后登录: 2024-05-18
查看guochunyi的 主题 / 回贴
6楼  发表于: 2012-12-20 16:31
引用
引用第5楼h30631于2012-12-20 08:47发表的  :
我沒有QQ耶...ㄏ

来这里说自己有教程,却又遮遮掩掩不肯给你共享的,,骗子居多。。
可直读解西门屏HMI各级帐户口令,帐户登录权限提升,锁定帐户激活。。。
sjm213
有小知识,无大学问。
级别: 论坛版主

精华主题: 7 篇
发帖数量: 5168 个
工控威望: 7391 点
下载积分: 156854 分
在线时间: 3123(小时)
注册时间: 2007-11-21
最后登录: 2024-05-18
查看sjm213的 主题 / 回贴
7楼  发表于: 2012-12-25 14:01
今天在实机上调试了这个程序,现象与楼主所讲一样。
再仔细想了一下,在三楼讲的第二条有问题。
PLC中无论扫描周期如何修改,执行的结果都是楼主期望的那样,T1对ADD之后的D350不会产生影响,因为T0状态ON的这个扫描周期,T1才刚开始计时,PLC工作的原理是下一次扫描到T1输出触点时才会更新当前值,所以T1现在的值是0,不会影响到T0和D350值的相加。
仿真中,无论扫描周期如何修改,T1在T0为ON开始计时的这个周期都是已经有了一个数值“1”,这就对D350的数值产生了附图中显示的影响。
说明仿真和PLC实机运行是不一样的。
sjm213
有小知识,无大学问。
级别: 论坛版主

精华主题: 7 篇
发帖数量: 5168 个
工控威望: 7391 点
下载积分: 156854 分
在线时间: 3123(小时)
注册时间: 2007-11-21
最后登录: 2024-05-18
查看sjm213的 主题 / 回贴
8楼  发表于: 2012-12-25 14:02
引用
引用第4楼h30631于2012-12-20 08:27发表的  :
感謝版主大師的指導~
依照指示,真的如板大所說,原來是時序的問題
所以我這種寫法會有編寫的順序問題,
可以在請問一下,執行 dadd這個指令 我知道的是會有一個D上位&D下位,與他相加的T也會自動有一個上位&下位嗎?
嬀 DADDP D0 T0 D0崀=D1 D0 +"T1 T0 " ??
.......


但是32位指令执行时是  D1  D0  +  T1  T0这是确确实实的。
h30631
级别: 略有小成
精华主题: 0
发帖数量: 90 个
工控威望: 230 点
下载积分: 812 分
在线时间: 339(小时)
注册时间: 2012-09-05
最后登录: 2018-04-17
查看h30631的 主题 / 回贴
9楼  发表于: 2012-12-25 21:02
感謝大師解說~
rockyhuo
专业制造全伺服高速卫生巾机器
级别: 论坛先锋

精华主题: 0
发帖数量: 1603 个
工控威望: 1921 点
下载积分: 4443 分
在线时间: 436(小时)
注册时间: 2008-07-14
最后登录: 2024-04-09
查看rockyhuo的 主题 / 回贴
10楼  发表于: 2012-12-26 00:25
简单吧T1改成T3就可以了,怎样的都是加20
变频器中心放卷,可以稳定达到280M/分钟线速度.
全伺服卫生巾、尿裤、护垫机机器项目合作,承接多功能卫生巾中包机制造,尿裤垛码机制造
QQ:84818626
电话:18923140420
rockyhuo
专业制造全伺服高速卫生巾机器
级别: 论坛先锋

精华主题: 0
发帖数量: 1603 个
工控威望: 1921 点
下载积分: 4443 分
在线时间: 436(小时)
注册时间: 2008-07-14
最后登录: 2024-04-09
查看rockyhuo的 主题 / 回贴
11楼  发表于: 2012-12-26 00:28
仿真对于时序比较严格的还是不行,例如仿真Q系列的10ms时序的就不行
变频器中心放卷,可以稳定达到280M/分钟线速度.
全伺服卫生巾、尿裤、护垫机机器项目合作,承接多功能卫生巾中包机制造,尿裤垛码机制造
QQ:84818626
电话:18923140420