- Posts: 17524
- Thank you received: 0
Mesa modbus and pktUart
1 year 9 months ago #319395
by PCW
Replied by PCW on topic Mesa modbus and pktUart
HAL_BIT type definitely works as this tested, working configuration:
static const hm2_modbus_chan_descriptor_t channels = {
/* {TYPE, FUNC, ADDR, COUNT, pin_name} */
{HAL_BIT, 1, 0x0000, 8, "state"},
{HAL_BIT, 2, 0x0000, 8, "input"},
{HAL_BIT, 5, 0x0000, 1, "relay-0"},
{HAL_BIT, 5, 0x0001, 1, "relay-1"},
{HAL_BIT, 5, 0x0002, 1, "relay-2"},
{HAL_BIT, 5, 0x0003, 1, "relay-3"},
};
Can you post your .mod file?
The inverted enable pin may not be recognized by 2.9.3 but it
should still work.
static const hm2_modbus_chan_descriptor_t channels = {
/* {TYPE, FUNC, ADDR, COUNT, pin_name} */
{HAL_BIT, 1, 0x0000, 8, "state"},
{HAL_BIT, 2, 0x0000, 8, "input"},
{HAL_BIT, 5, 0x0000, 1, "relay-0"},
{HAL_BIT, 5, 0x0001, 1, "relay-1"},
{HAL_BIT, 5, 0x0002, 1, "relay-2"},
{HAL_BIT, 5, 0x0003, 1, "relay-3"},
};
Can you post your .mod file?
The inverted enable pin may not be recognized by 2.9.3 but it
should still work.
Please Log in to join the conversation.
1 year 9 months ago #319431
by vre
compilation : sudo modcompile file.mod
this is a working mb2hal configuration for my modbus module
Replied by vre on topic Mesa modbus and pktUart
Code:
#define MAX_MSG_LEN 16 // may be increased if necessary to max 251
#define DEBUG 2
static const hm2_modbus_chan_descriptor_t channels = {
/* {TYPE, FUNC, ADDR, COUNT, pin_name} */
{HAL_BIT, 3, 130, 8, "in"},
{HAL_U32, 16, 1, 8, "out"},
};
compilation : sudo modcompile file.mod
this is a working mb2hal configuration for my modbus module
Code:
[TRANSACTION_00]
LINK_TYPE=serial
SERIAL_PORT=/dev/ttyS0
SERIAL_BAUD=9600
SERIAL_BITS=8
SERIAL_PARITY=none
SERIAL_STOP=1
SERIAL_DELAY_MS=5
MB_SLAVE_ID=1
FIRST_ELEMENT=129
PIN_NAMES=01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16
HAL_TX_NAME=in
MB_TX_CODE=fnct_03_read_holding_registers
[TRANSACTION_01]
PIN_NAMES=01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16
MB_TX_CODE=fnct_16_write_multiple_registers
FIRST_ELEMENT=1
HAL_TX_NAME=out
MAX_UPDATE_RATE=0.0
Please Log in to join the conversation.
1 year 9 months ago #319436
by PCW
Replied by PCW on topic Mesa modbus and pktUart
I don't think:
HAL_BIT, 3, 130, 8, "in"
makes logical sense
Because unlike function 2 which returns a
number of bits, function 3 returns a number
of bytes.
I think you need to use u32
HAL_BIT, 3, 130, 8, "in"
makes logical sense
Because unlike function 2 which returns a
number of bits, function 3 returns a number
of bytes.
I think you need to use u32
Please Log in to join the conversation.
1 year 9 months ago #319438
by vre
Replied by vre on topic Mesa modbus and pktUart
I have used u32 and works but
SCFFIFO error remains
SCFFIFO error remains
Code:
hm2: hm2_7i80.0.pktuart.0: SCFFIFO error
Modbus error response function 128 error Illegal Data Value
hm2: hm2_7i80.0.pktuart.0: SCFFIFO error
Modbus error response function 128 error Illegal Data Value
Please Log in to join the conversation.
1 year 9 months ago #319439
by PCW
Replied by PCW on topic Mesa modbus and pktUart
The SCFFIFO error is just a warning so should be harmless.
Andy probably need to look at that.
What is you current .mod file?
I think the only valid byte count on the function 3 read is likely 2
(because holding registers are 16 bits)
Andy probably need to look at that.
What is you current .mod file?
I think the only valid byte count on the function 3 read is likely 2
(because holding registers are 16 bits)
Please Log in to join the conversation.
1 year 9 months ago #319448
by vre
Replied by vre on topic Mesa modbus and pktUart
This config works but displays a ton of errors at startup of linuxcnc like these
Code:
task: main loop took 0.105362 seconds
Modbus error response function 128 error Illegal Data Value
Modbus error response function 128 error Illegal Data Value
task: main loop took 0.100015 seconds
Modbus error response function 128 error Illegal Data Value
task: main loop took 0.100069 seconds
Modbus error response function 128 error Illegal Data Value
Code:
#define MAX_MSG_LEN 16 // may be increased if necessary to max 251
#define DEBUG 1
static const hm2_modbus_chan_descriptor_t channels[] = {
/* {TYPE, FUNC, ADDR, COUNT, pin_name} */
{HAL_U32, 3, 0x0080, 1, "in-01"},
{HAL_U32, 3, 0x0081, 1, "in-02"},
{HAL_U32, 3, 0x0082, 1, "in-03"},
{HAL_U32, 3, 0x0083, 1, "in-04"},
{HAL_U32, 3, 0x0084, 1, "in-05"},
{HAL_U32, 3, 0x0085, 1, "in-06"},
{HAL_U32, 3, 0x0086, 1, "in-07"},
{HAL_U32, 3, 0x0087, 1, "in-08"},
{HAL_U32, 3, 0x0088, 1, "in-09"},
{HAL_U32, 3, 0x0089, 1, "in-10"},
{HAL_U32, 3, 0x008A, 1, "in-11"},
{HAL_U32, 3, 0x008B, 1, "in-12"},
{HAL_U32, 3, 0x008C, 1, "in-13"},
{HAL_U32, 3, 0x008D, 1, "in-14"},
{HAL_U32, 3, 0x008E, 1, "in-15"},
{HAL_U32, 3, 0x008F, 1, "in-16"},
{HAL_U32, 3, 0x0090, 1, "in-17"},
{HAL_U32, 3, 0x0091, 1, "in-18"},
{HAL_U32, 3, 0x0092, 1, "in-19"},
{HAL_U32, 3, 0x0093, 1, "in-20"},
{HAL_U32, 3, 0x0094, 1, "in-21"},
{HAL_U32, 3, 0x0095, 1, "in-22"},
{HAL_U32, 3, 0x0096, 1, "in-23"},
{HAL_U32, 3, 0x0097, 1, "in-24"},
{HAL_U32, 3, 0x0098, 1, "in-25"},
{HAL_U32, 3, 0x0099, 1, "in-26"},
{HAL_U32, 3, 0x009A, 1, "in-27"},
{HAL_U32, 3, 0x009B, 1, "in-28"},
{HAL_U32, 3, 0x009C, 1, "in-29"},
{HAL_U32, 3, 0x009D, 1, "in-30"},
{HAL_U32, 3, 0x009E, 1, "in-31"},
{HAL_U32, 3, 0x009F, 1, "in-32"},
{HAL_U32, 16, 0x0000, 1, "out-01"},
{HAL_U32, 16, 0x0001, 1, "out-02"},
{HAL_U32, 16, 0x0002, 1, "out-03"},
{HAL_U32, 16, 0x0003, 1, "out-04"},
{HAL_U32, 16, 0x0004, 1, "out-05"},
{HAL_U32, 16, 0x0005, 1, "out-06"},
{HAL_U32, 16, 0x0006, 1, "out-07"},
{HAL_U32, 16, 0x0007, 1, "out-08"},
{HAL_U32, 16, 0x0008, 1, "out-09"},
{HAL_U32, 16, 0x0009, 1, "out-10"},
{HAL_U32, 16, 0x000A, 1, "out-11"},
{HAL_U32, 16, 0x000B, 1, "out-12"},
{HAL_U32, 16, 0x000C, 1, "out-13"},
{HAL_U32, 16, 0x000D, 1, "out-14"},
{HAL_U32, 16, 0x000E, 1, "out-15"},
{HAL_U32, 16, 0x000F, 1, "out-16"},
{HAL_U32, 16, 0x0010, 1, "out-17"},
{HAL_U32, 16, 0x0011, 1, "out-18"},
{HAL_U32, 16, 0x0012, 1, "out-19"},
{HAL_U32, 16, 0x0013, 1, "out-20"},
{HAL_U32, 16, 0x0014, 1, "out-21"},
{HAL_U32, 16, 0x0015, 1, "out-22"},
{HAL_U32, 16, 0x0016, 1, "out-23"},
{HAL_U32, 16, 0x0017, 1, "out-24"},
{HAL_U32, 16, 0x0018, 1, "out-25"},
{HAL_U32, 16, 0x0019, 1, "out-26"},
{HAL_U32, 16, 0x001A, 1, "out-27"},
{HAL_U32, 16, 0x001B, 1, "out-28"},
{HAL_U32, 16, 0x001C, 1, "out-29"},
{HAL_U32, 16, 0x001D, 1, "out-30"},
{HAL_U32, 16, 0x001E, 1, "out-31"},
{HAL_U32, 16, 0x001F, 1, "out-32"},
};
Please Log in to join the conversation.
1 year 9 months ago #319465
by PCW
Replied by PCW on topic Mesa modbus and pktUart
if this is a 16 input module, there should only be one function 3 read
(because that read reads 16 bits at once into a single U32)
Also it's a bit strange to use function 3 to read bits
as function 2 would be the standard thing for this.
(because that read reads 16 bits at once into a single U32)
Also it's a bit strange to use function 3 to read bits
as function 2 would be the standard thing for this.
Please Log in to join the conversation.
1 year 9 months ago #319514
by vre
Replied by vre on topic Mesa modbus and pktUart
This is a 32ch input 32ch output module ( 25IOC32_PNP )
485io.com/others-c-2_5/25ioc32-32di-32do...home-iot-p-1608.html
485io.com/eletechsup/25IOA08-25IOB16-25IOC32-1.rar
input1 is at 0x0080 address
input2 is at 0x0081 address
and so on..
The previous config reads all inputs correct
but displays many errors at startup after startup doesn't display errors
485io.com/others-c-2_5/25ioc32-32di-32do...home-iot-p-1608.html
485io.com/eletechsup/25IOA08-25IOB16-25IOC32-1.rar
input1 is at 0x0080 address
input2 is at 0x0081 address
and so on..
The previous config reads all inputs correct
but displays many errors at startup after startup doesn't display errors
Please Log in to join the conversation.
1 year 9 months ago #319518
by PCW
Replied by PCW on topic Mesa modbus and pktUart
Looks like it supports function 2 which would be a more natural
way to do bit input
way to do bit input
Please Log in to join the conversation.
1 year 9 months ago #319521
by vre
Replied by vre on topic Mesa modbus and pktUart
Can the startup errors be due the pullup resistors that has 7i80hd
and all pins before starting linuxcnc are at 5V ?
and all pins before starting linuxcnc are at 5V ?
Please Log in to join the conversation.
Time to create page: 0.189 seconds
