main.lua 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. PROJECT = "modbus_rtu_uart2"
  2. VERSION = "001.000.000"
  3. sys = require("sys")
  4. -- mobile.simid(2)
  5. -- Air780E的AT固件默认会为开机键防抖, 导致部分用户刷机很麻烦
  6. if rtos.bsp() == "EC618" and pm and pm.PWK_MODE then
  7. pm.power(pm.PWK_MODE, false)
  8. end
  9. require"uart1_rtu"
  10. require"uart2_rtu"
  11. require"uart11_rtu"
  12. -- 如果你用的是合宙DTU整机系列,才需要打开,否则按自己设计的PCB来
  13. -- gpio.setup(1, 1) -- 485转TTL芯片供电打开
  14. -- gpio.setup(24, 1) -- 外置供电电源打开
  15. -- local modbus_tcp = require("modbus_tcp")
  16. -- function modbus_tcp_test()
  17. -- sys.waitUntil("IP_READY")
  18. -- -- 连接到 Modbus TCP 服务器
  19. -- local netc, err = modbus_tcp.connect("112.125.89.8", 42514)
  20. -- if not netc then
  21. -- log.error("Modbus TCP", "连接失败:", err)
  22. -- return
  23. -- end
  24. -- -- 示例 1: 读取保持寄存器
  25. -- local response, err = modbus_tcp.send_request(netc, 1, 0x03, 0, 10) -- 读取从站地址为 1 的保持寄存器,起始地址为 0,数量为 10
  26. -- if not response then
  27. -- log.error("Modbus TCP", "读取保持寄存器失败:", err)
  28. -- else
  29. -- log.info("Modbus TCP", "读取保持寄存器响应数据:", response.data)
  30. -- end
  31. -- -- 示例 2: 写入单个寄存器
  32. -- local write_response, err = modbus_tcp.send_request(netc, 1, 0x06, 5, 1234) -- 向从站地址为 1 的寄存器地址 5 写入值 1234
  33. -- if not write_response then
  34. -- log.error("Modbus TCP", "写入单个寄存器失败:", err)
  35. -- else
  36. -- log.info("Modbus TCP", "写入单个寄存器响应数据:", write_response.data)
  37. -- end
  38. -- -- 关闭连接
  39. -- -- modbus_tcp.close(netc)
  40. -- end
  41. -- sys.taskInit()
  42. -- log.info("mem.lua", rtos.meminfo())
  43. -- log.info("mem.sys", rtos.meminfo("sys"))
  44. -- 用户代码已结束---------------------------------------------
  45. -- 结尾总是这一句
  46. sys.run()
  47. -- sys.run()之后后面不要加任何语句!!!!!