yangchunyao
级别: 正式会员
精华主题: 0
发帖数量: 3 个
工控威望: 92 点
下载积分: 599 分
在线时间: 7(小时)
注册时间: 2014-09-26
最后登录: 2016-06-16
查看yangchunyao的 主题 / 回贴
楼主  发表于: 2015-07-22 12:06
最近在做一个触摸屏直接通过MODBUS控制变频器频率的程序,通过宏指令把实际的工程值转换成变频器的频率,比如线速度10M/S转换成50HZ,下面是宏指令,在触摸屏上设置3个数值元件,地址分别是LW0,LW1,LW2,LW2对应的数值元件用来显示计算结果,请问怎么把计算的结果写入变频器,变频器主频率给定的地址是0x6203,谢谢。
macro_command main()
short a[3]
GetData(a[0], "Local HMI", LW, 0, 2)
a[2]=a[0]*a[1]
SetData(a[2], "Local HMI", LW, 2, 1)
end macro_command
本帖最近评分记录:
  • 下载积分:+1(离亭晚)
    ajiang_th
    级别: 略有小成
    精华主题: 0
    发帖数量: 195 个
    工控威望: 319 点
    下载积分: 13575 分
    在线时间: 318(小时)
    注册时间: 2010-08-13
    最后登录: 2024-05-10
    查看ajiang_th的 主题 / 回贴
    1楼  发表于: 2015-07-22 13:39
    那有那么麻烦,想必用了触摸屏的话一定也用了PLC吧,我曾经做过这样的控制很简单,只要用触摸屏把要写到变频器的参数输入到PLC的暂存器里,然后通过PLC的MODBUS指令把参数直接写到变频器上就可了很方便。不用做任何转换,读取也同样方便,只要反过来就可以了。不过我用的是汇川的PLC,汇川的PLC有很方便的MODBUS指令,在程序里也是直接指定就可以搞定了。不仿试试我的这个方法,根本用不着难懂的宏指令。
    moder7364
    缘起我在人群中看见你,缘散我看见你在人群中。
    级别: 网络英雄
    精华主题: 0
    发帖数量: 181 个
    工控威望: 8042 点
    下载积分: 28561 分
    在线时间: 1026(小时)
    注册时间: 2013-08-31
    最后登录: 2024-05-16
    查看moder7364的 主题 / 回贴
    2楼  发表于: 2015-07-22 16:24
    macro_command main()
    short a[3]
    GetData(a[0], "Local HMI", LW, 0, 2)
    a[2]=a[0]*a[1]
    SetData(a[2], "Local HMI", LW, 2, 1)
    SetData(a[2], "MODBUS ASCII", 6x, 1#6203, 1)
    end macro_command
    本帖最近评分记录:
  • 下载积分:+3(mk自动化) 热心助人!
    924011476
    级别: 略有小成
    精华主题: 0
    发帖数量: 337 个
    工控威望: 445 点
    下载积分: 1278 分
    在线时间: 287(小时)
    注册时间: 2013-09-11
    最后登录: 2023-12-19
    查看924011476的 主题 / 回贴
    3楼  发表于: 2015-07-22 17:53
    1楼的方法简单易懂,不过楼主好像没有用PLC,学习了,谢谢。
    [ 此帖被924011476在2015-07-22 17:58重新编辑 ]
    yangchunyao
    级别: 正式会员
    精华主题: 0
    发帖数量: 3 个
    工控威望: 92 点
    下载积分: 599 分
    在线时间: 7(小时)
    注册时间: 2014-09-26
    最后登录: 2016-06-16
    查看yangchunyao的 主题 / 回贴
    4楼  发表于: 2015-07-22 23:00
    引用
    引用第2楼moder7364于2015-07-22 16:24发表的  :
    macro_command main()
    short a[3]
    GetData(a[0], "Local HMI", LW, 0, 2)
    a[2]=a[0]*a[1]
    SetData(a[2], "Local HMI", LW, 2, 1)
    .......

    谢谢,根据你的方法问题已经解决了。
    yangchunyao
    级别: 正式会员
    精华主题: 0
    发帖数量: 3 个
    工控威望: 92 点
    下载积分: 599 分
    在线时间: 7(小时)
    注册时间: 2014-09-26
    最后登录: 2016-06-16
    查看yangchunyao的 主题 / 回贴
    5楼  发表于: 2015-07-22 23:02
    引用
    引用第1楼ajiang_th于2015-07-22 13:39发表的  :
    那有那么麻烦,想必用了触摸屏的话一定也用了PLC吧,我曾经做过这样的控制很简单,只要用触摸屏把要写到变频器的参数输入到PLC的暂存器里,然后通过PLC的MODBUS指令把参数直接写到变频器上就可了很方便。不用做任何转换,读取也同样方便,只要反过来就可以了。不过我用的是汇川的PLC,汇川的PLC有很方便的MODBUS指令,在程序里也是直接指定就可以搞定了。不仿试试我的这个方法,根本用不着难懂的宏指令。

    没办法,为了节约成本,把PLC省掉了
    大明哥
    级别: 略有小成
    精华主题: 0
    发帖数量: 122 个
    工控威望: 237 点
    下载积分: 841 分
    在线时间: 83(小时)
    注册时间: 2014-08-28
    最后登录: 2016-06-27
    查看大明哥的 主题 / 回贴
    6楼  发表于: 2015-07-23 17:52
          哈哈 学习了
    大明哥
    级别: 略有小成
    精华主题: 0
    发帖数量: 122 个
    工控威望: 237 点
    下载积分: 841 分
    在线时间: 83(小时)
    注册时间: 2014-08-28
    最后登录: 2016-06-27
    查看大明哥的 主题 / 回贴
    7楼  发表于: 2015-07-23 17:54
    看一看威纶触摸屏使用手册   宏指令章节中 通讯有关的函数 这一部分