威纶通官方论坛

我想实现一个地址偏移的功能!可是用不了,请大家帮个忙

[复制链接]
发表于 2013-3-22 17:03:21 | 显示全部楼层 |阅读模式
本帖最后由 fanseal 于 2013-3-23 09:24 编辑

我想实现一个地址偏移的功能!不知道程序怎么写!因为没有学过C语言。请大家帮个忙
我的是FX3U+MT6070I
例如:当S100接通时读取D38的值,当S102接通时读取D42的值,当S104接通时读取D48的值... ...
 楼主| 发表于 2013-3-23 09:21:42 | 显示全部楼层
本帖最后由 fanseal 于 2013-3-23 09:26 编辑

我做了个指令,可是用不了,请大家多多指较
macro_command main()
short a
bool Jump
bool off = false
GetData(jump, "PLC", s, 100, 1)
if Jump = 1 then
GetData(a, "PLC", D, 38, 1)
SetData(a, "HMI", LW, 0, 1)
GetData(jump, "PLC", s, 102, 1)
if Jump = 1 then
GetData(a, "PLC", D, 42, 1)
SetData(a, "HMI", LW, 0, 1)
GetData(jump, "PLC", s, 104, 1)
if Jump = 1 then
GetData(a, "PLC", D, 48, 1)
SetData(a, "HMI", LW, 0, 1)
end if
end macro_command
发表于 2013-3-27 14:33:42 | 显示全部楼层
楼上的方法虽然可行,但是如果数据量多的话,就不方便了,我建议使用 FOR STP  NEXT来做,这样很方便,这我们的数据指针差不多,LW9200你们可以看下,这个也是个基础的问题
 楼主| 发表于 2013-4-30 14:23:53 | 显示全部楼层
谢谢,请问用 FOR STP  NEXT来做,是如何做呢?可以指点下吗?
发表于 2013-5-1 20:35:57 | 显示全部楼层
macro_command main()
short a
bool jump
bool off = false
GetData(jump, "PLC", S, 100, 1)
if jump == 1 then
GetData(a, "PLC", D, 38, 1)
SetData(a, "HMI", LW, 0, 1)
end if
GetData(jump, "PLC", S, 102, 1)
if jump == 1 then
GetData(a, "PLC", D, 42, 1)
SetData(a, "HMI", LW, 0, 1)
end if
GetData(jump, "PLC", S, 104, 1)
if jump == 1 then
GetData(a, "PLC", D, 48, 1)
SetData(a, "HMI", LW, 0, 1)
end if
end macro_command
发表于 2013-5-1 20:36:54 | 显示全部楼层
试下上面的语句,注意判断是否相等要用2个等于号
还要注意字符的大小写
 楼主| 发表于 2013-5-13 16:58:05 | 显示全部楼层
谢谢版主,我试一下
您需要登录后才可以发帖 登录 | 注册

本版积分规则

回复帖子

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

GMT+8, 2024-11-22 01:58

Powered by Discuz! X3.4

© 2001-2023 Comsenz Inc.

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