apache/plc4x

PLCRuntime Exception: NotSupported on S7_315 while Subscribing [Bug]:

mrwhy-orig opened this issue · 1 comments

What happened?

I am trying to subscribe to data changes in the S7 315 PLC. The canSubscribe method returns true. But with subscriptionRequest.execute().get() i get a PLCRuntimeException: Not Supported.
I'm trying to get Updates from the Digital Inputs.
I tried all three available methods to do so.

(EDIT) I used the Getting Started article as reference. Also Reading and Writing is working.
(EDIT2) The Stack Trace:
java.util.concurrent.ExecutionException: org.apache.plc4x.java.api.exceptions.PlcRuntimeException: Not Supported at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:396) at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2073) at SPS.S7_300.registerEventConsumer(S7_300.java:136) at SPS.S7_300.subscribeToAddress(S7_300.java:124) at SPS.S7_300.<init>(S7_300.java:103) at com.cn.bssecsmaven.BsSECS.startSPSService(BsSECS.java:71) at com.cn.bssecsmaven.BsSECS.main(BsSECS.java:62) Caused by: org.apache.plc4x.java.api.exceptions.PlcRuntimeException: Not Supported at org.apache.plc4x.java.s7.readwrite.protocol.S7ProtocolLogic.subscribe(S7ProtocolLogic.java:386) at org.apache.plc4x.java.spi.optimizer.BaseOptimizer.send(BaseOptimizer.java:137) at org.apache.plc4x.java.spi.optimizer.BaseOptimizer.optimizedSubscribe(BaseOptimizer.java:120) at org.apache.plc4x.java.spi.connection.AbstractPlcConnection.subscribe(AbstractPlcConnection.java:194) at org.apache.plc4x.java.spi.messages.DefaultPlcSubscriptionRequest.execute(DefaultPlcSubscriptionRequest.java:58) ... 5 more

(EDIT3) It is reproducable with the plc4j example: plc4j-examples-hello-world-plc4x-subscribe

Version

v.0.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

Ok. Digged into it... Seems to be a user error ;)
It is crucial to pass the controller-type parameter in the connection string.
Allowed are only S7_300 or S7_400 nothing like my S7_315. By changing this, this error is solved.