威纶通官方论坛

宏指令触发判断

[复制链接]
发表于 2013-7-17 15:37:04 | 显示全部楼层 |阅读模式
请问下版主:
                为什么PLC触发的次数与宏指令触发的次数不一样,是不是触摸屏反应不过来.

macro_command main()
bool I
bool k
GetData(I, "Mitsubishi FX3U/FX3G", Y, 0, 1)//读取PLC Y0值
SetData(I, "Local HMI", LB, 0, 1)//将PLC Y0值写入到LB0
GetData(k, "Local HMI", LB, 0, 1)//读取LB0值
SetData(k, "Mitsubishi FX3U/FX3G", Y, 1, 1)//将LB0值写入到PLC Y1

end macro_command

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2013-7-17 17:00:34 | 显示全部楼层
请求版主解决
发表于 2013-7-18 10:36:04 | 显示全部楼层
你宏指令里面不需要把那些数据再发送到触摸屏的LB地址中。
GetData(I, "Mitsubishi FX3U/FX3G", Y, 0, 1)//读取PLC Y0值
SetData(I, "Mitsubishi FX3U/FX3G", Y, 1, 1)//将LB0值写入到PLC Y1
而且你宏指令是用什么方式来执行的,触发周期是多久?
 楼主| 发表于 2013-7-18 15:22:48 | 显示全部楼层
触发周期时间是300MS(宏指令周期设置为0),我是想用FX3U与MT8070IH通信,然后再用触摸屏的MODBUS TCP/IP协议与组态王做数据库采集(以态网组网方便)。宏指令是一直执行的。
 楼主| 发表于 2013-7-18 15:35:15 | 显示全部楼层
开机后就执行宏指令,周期执行,时间间隔为0秒。PLC Y0是闭合150MS等待150MS再循环执行,现在PLC Y0触发的次数据,跟宏指令赋值给Y1 触发的次数差异好大,Y0的触发次数比Y1多(按理是一样才对)。有上传过附件程序。
 楼主| 发表于 2013-7-19 11:05:10 | 显示全部楼层
版主:我的问题还没解决.....
发表于 2013-7-19 12:16:33 | 显示全部楼层
你的宏只是开机初始化执行一次啊?
 楼主| 发表于 2013-7-19 16:30:18 | 显示全部楼层
一直循环执行的啊,要不然就不会有PLC触发的次数多过宏指令赋值触发的次数.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2013-7-19 17:16:07 | 显示全部楼层
本帖最后由 weinview 于 2013-7-19 17:20 编辑

可能是宏指令执行时间再加上读取Y状态与PLC的通讯时间加起来没15mm那么快!
中间可能有Y的状态变化没有读取到。
 楼主| 发表于 2013-7-20 09:02:00 | 显示全部楼层
还有没有别的办法可以解决???
发表于 2013-7-28 20:43:33 | 显示全部楼层
本帖最后由 芳季 于 2013-7-28 20:44 编辑

这是因为plc的扫描和屏的通讯是异步的。y0的on状态只有一个周期,屏未必会读得到。但是,plc自己肯定知道他on了一个周期,所以D100记录到很多数,一个都不会少。而……
你懂的。
您需要登录后才可以发帖 登录 | 注册

本版积分规则

回复帖子

Archiver|小黑屋|威纶通官网 ( 粤ICP备06054553号 )

GMT+8, 2024-11-22 00:10

Powered by Discuz! X3.4

© 2001-2023 Comsenz Inc.

快速回复 返回顶部 返回列表