Joe_ValleyMation Posted June 30, 2014 Report Share Posted June 30, 2014 Hi Everyone, I've implemented Modbus communications with Unitronics Vision series, both serial and Ethernet. I've been able to read and write MIs and MB successfully. But I'm not able to access any other type of addresses. Visilogic help shows a "slave adressing" table. This table apparently indicates for example that in order to read SBs you should read coils starting at 3000 address or in order to read OPLC discrete inputs you should read coils starting at 4000 Outputs->5000 Timer coils->6000 Counters->7000 MBs 3000-4095->8000 (similar story for registers different from MIs) well, this simply doesn't work, reading addresses 3000 or 4000 does not return SBs or Inputs, also any attemp to read a coil address above 4095 will return an error. Modbus offcourse supports 1xxxx addresses for inputs, but Unitronics OPLCS seem to support only 0xxxx (coils) and 4xxxx (registers). There is offcourse the chance to "map" SBs or Inputs to MBs and then read them as MBs, but is not a clean way to do it, and you need to consume MBs just for mapping purposes. I guess there should be a way to read inputs, since there is a "Read Input" function block in Visilogic Modbus Master. So, please tell me I'm wrong and tell how can SBs and Inputs via Modbus from a Unitronics OPlc. Thank You! Joe Link to comment Share on other sites More sharing options...
Eyal Koren Posted July 1, 2014 Report Share Posted July 1, 2014 Hi Joe, What Vision model are you using? Please note that the slave addressing is different for the Standard (V120, V230, V260, V280, V290, V530) and the Enhanced models (V130, V350, V560/570, V1040, V1210). The values stated above are for the Standard models only, and that might explain why this implementation is not working for you. If you still cannot implement Modbus communication, please feel free to send your application to support@unitronics.com. Link to comment Share on other sites More sharing options...
Joe_ValleyMation Posted July 1, 2014 Author Report Share Posted July 1, 2014 Hello Eyal, Thank you for your response. I'm using and enhanced controller V350. The slave addressing table for enhanced controllers shows the following: Coils (Read Coils Modbus Command) 0000h -> MB0 3000h-> XB 4000h-> O 5000h-> SB 6000h-> I 7000h-> T 8000h-> C However, like i mentioned, the V350 only responds to the Modbus Read Coil command for MBs and the highest address the controller responds is 4095 (decimal) without returning an error. So, like I said, it is not possible to read via Modbus any discrete address besides MBs. Could you please check with your teammates if anyone has tried this before? Again, We are talking about reading V350 operand values (other than MBs and MIs) from any Modbus Master Software (Scada, OPC, etc.) Thank You! Joe Link to comment Share on other sites More sharing options...
Eyal Koren Posted July 2, 2014 Report Share Posted July 2, 2014 Joe, We have many project which successfully implemented Modbus communication, both RTU and TCP. As stated in the Slave Addressing page in Visilogic help file, the stated addresses should be referred as hexadecimal values, and not decimal. The only reason that you were actually able to read MB's and MI's is because the first values (0-10) are identical bot in decimal and hexadecimal bases. Try changing the base to hex and see if the issue persists (don't forget to check that the operand value corresponds to the hex format - for example ML40=7028h). Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now