Advanced Search

Search Results (Searched for: )

  • Bertho
  • Bertho
28 Jun 2025 21:29

How to write multipule data ( byte) mesambccc

Category: General LinuxCNC Questions

Hello, (author of the hm2_modbus driver calling...)

First, what is the error code generated? See the hm2_modbus.0.command.NN.error-code pins.

Second, what LCNC version are you using?

Just a comment on the attached documentation image:
Reading and writing registers are, in modbus terms, always multiples of word (2-byte) quantities. The image with the "Home position return speed" at register address 0x6099 states a /single byte/ and then two 4-byte words. The documentation is slightly misleading. It states in the next column that 5 registers are actually involved, so that would indicate that the first is masked to a byte sized value (masking is not supported or performed by the hm2_modbus driver). The 5-register statement in the table would also fix the problem of having 32-bit words seemingly on a odd address boundary. But with 5 registers, then the "number of entries" value is at address 0x6099 and the two 32-bit words are at 0x609a and 0x609c resp.. BTW, I notice the interesting mixed endianess of the 32-bit values...

The read operation seems to work as intended, but the write operation fails. The failure is apparently not a problem of the mbccs file. It is an error message of the hm2_modbus driver that indicates something odd is happening.

When compiling the mbccs file I get a couple of warnings (using first file below):
mrje70a.mbccs: warning: Multi-register type 'U_CDAB' not aligned to natural boundary in commands/command[1]/pin[2]
mrje70a.mbccs: warning: Multi-register type 'U_CDAB' not aligned to natural boundary in commands/command[1]/pin[3]
mrje70a.mbccs: warning: Multi-register type 'U_CDAB' not aligned to natural boundary in commands/command[2]/pin[2]
mrje70a.mbccs: warning: Multi-register type 'U_CDAB' not aligned to natural boundary in commands/command[2]/pin[3]

But, that should not be the case. This is an error in mesambccc not being able to count correctly. Using the --verbose option clearly shows the address to be even. I have to investigate and see what is happening. I am guessing that the hm2_modbus error is secondary to an error in mesambccc when setting the command and pin fields for the command lists. As a temporary fix: splitting the read and write commands into two separate commands makes the warnings go away (second source below). It /might/ fix the read/write issue you are having. The downside is that the read/write no longer is one single modbus transaction. That may or may not be a problem, depending the device.

The way you wrote the definition should work. I'd write it like:
[code][code][code]<?xml version="1.0" encoding="UTF-8"?>
[code]<mesamodbus baudrate="115200" parity="E" stopbits="1">
  <devices><device address="0x02" name="mrje70a"/></devices>
  <initlist />
  <commands>
    <command device="mrje70a" function="R_REGISTERS" address="0x6099" haltype="HAL_U32">
      <pin name="rnumentries" modbustype="U_AB"/>
      <pin name="rspeedss" modbustype="U_CDAB"/>
      <pin name="rspeedsz" modbustype="U_CDAB"/>
    </command>
    <command device="mrje70a" function="W_REGISTERS" address="0x6099" haltype="HAL_U32">
      <pin name="wnumentries" modbustype="U_AB"/>
      <pin name="wspeedss" modbustype="U_CDAB"/>
      <pin name="wspeedsz" modbustype="U_CDAB"/>
    </command>
  </commands>
</mesamodbus>

---

<?xml version="1.0" encoding="UTF-8"?>
<mesamodbus baudrate="115200" parity="E" stopbits="1">
  <devices><device address="0x02" name="mrje70a"/></devices>
  <initlist />
  <commands>
    <command device="mrje70a" function="R_REGISTERS" address="0x6099" haltype="HAL_U32">
      <pin name="rnumentries" modbustype="U_AB"/>
    </command>
    <command device="mrje70a" function="R_REGISTERS" address="0x609a" haltype="HAL_U32">
      <pin name="rspeedss" modbustype="U_CDAB"/>
      <pin name="rspeedsz" modbustype="U_CDAB"/>
    </command>
    <command device="mrje70a" function="W_REGISTERS" address="0x6099" haltype="HAL_U32">
      <pin name="wnumentries" modbustype="U_AB"/>
    </command>
    <command device="mrje70a" function="W_REGISTERS" address="0x609a" haltype="HAL_U32">
      <pin name="wspeedss" modbustype="U_CDAB"/>
      <pin name="wspeedsz" modbustype="U_CDAB"/>
    </command>
  </commands>
</mesamodbus>
[/code][/code][/code][/code]
  • pscott
  • pscott
28 Jun 2025 20:44
Replied by pscott on topic Blow back plasma torch start timing problem

Blow back plasma torch start timing problem

Category: Plasma & Laser

The timing problems are probably due to combining a ebay no-name torch with a aliexpress no-name inverter, and then unplugging the HF start from the inverter as it caused too much interference. But it runs good enough for our use when the torch gets its needed recovery time between starts.
I'll consider modifying the post, but I'll also take a look at the plasmac component to see if I can tweak it to do it like our MACH3 M3 macro does.
  • pscott
  • pscott
28 Jun 2025 20:36
Replied by pscott on topic Blow back plasma torch start timing problem

Blow back plasma torch start timing problem

Category: Plasma & Laser

Main thing is that MACH3 seems to have some problems blending moves together.
Our table is multi function and currently it is setup with a LED laser cutter head and at the speeds needed for that we could better see the lack of blending.

The second part is that it would be nice to have all the cut-recover features from plasmac.
  • PCW
  • PCW's Avatar
28 Jun 2025 20:20

How to write multipule data ( byte) mesambccc

Category: General LinuxCNC Questions

debug is described in the hm2_modbus manual page.
Displaying 14791 - 14794 out of 14794 results.
Time to create page: 0.354 seconds
Powered by Kunena Forum