Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: SlaveID #1614

Closed
2 of 16 tasks
ZantsuRocks opened this issue May 24, 2024 · 5 comments
Closed
2 of 16 tasks

[Bug]: SlaveID #1614

ZantsuRocks opened this issue May 24, 2024 · 5 comments
Labels

Comments

@ZantsuRocks
Copy link

ZantsuRocks commented May 24, 2024

What happened?

I think that something is not working with the TAG Creation...

I cant build a tag to read data from slave-id 2 in modbus.

I have a network with 10 slave, i need to read them in order but the string won't build

When i remove the "{unit-id 2}" from the tag it works.

//connection
plcConn = plcDM.getConnectionManager().getConnection("modbus-rtu:tcp:https://127.0.0.1:502"); //FIXME: Somente para debug

// ...Doing things...

builder.addTagAddress("holding-registers", "holding-register:1[23]{unit-id: 2}");

PlcReadRequest readRequest = builder.build();

PlcReadResponse response = readRequest.execute().get();

the error:

Exception in thread "Thread-2" org.apache.plc4x.java.api.exceptions.PlcInvalidTagException: holding-register:1[23]{unit-id: 2} invalid
	at org.apache.plc4x.java.modbus.base.tag.ModbusTagHandler.parseTag(ModbusTagHandler.java:41)
	at org.apache.plc4x.java.spi.messages.DefaultPlcReadRequest$Builder.lambda$0(DefaultPlcReadRequest.java:122)
	at org.apache.plc4x.java.spi.messages.DefaultPlcReadRequest$Builder.lambda$2(DefaultPlcReadRequest.java:138)
	at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:986)
	at org.apache.plc4x.java.spi.messages.DefaultPlcReadRequest$Builder.build(DefaultPlcReadRequest.java:138)

Version

v0.12.0

Programming Languages

  • plc4j
  • plc4go
  • plc4c
  • plc4net

Protocols

  • AB-Ethernet
  • ADS /AMS
  • BACnet/IP
  • CANopen
  • DeltaV
  • DF1
  • EtherNet/IP
  • Firmata
  • KNXnet/IP
  • Modbus
  • OPC-UA
  • S7
@StrawberryBlue
Copy link
Contributor

slaveId use url parameter as "modbus-tcp:tcp:https://127.0.0.1:502?request-timeout=5000&default-unit-identifier=1"

@ZantsuRocks
Copy link
Author

For TCP connections there is no problem in this.
But for Serial connections this breaks all the utility of a Slave ID, we can have at least 247 slaves in serial communication, using this parameter as connection parameter just make the use difficult, we need to keep opening and closing the serial connection.
I was using the TCP transport just to debug without a real hardware, my final transport will be serial.

@StrawberryBlue
Copy link
Contributor

Try this one.
I can succeed.
builder.addTagAddress("value-1", "holding-register:1:UINT[10]{unit-id: 2}");

@chrisdutz
Copy link
Contributor

Can we close this issue?

@ZantsuRocks
Copy link
Author

Can we close this issue?

I gave up on using this library since my project is heavily dependent on SlaveID. You can close the issue, and if I use the library again, I will check and open another one if necessary.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants