Jump to content
  • 0

DASYlab modbus communication with Stride I/O module


Question

Posted

Hello,

This post is in regards to a modbus communication issue I am working through in DASYlab 2022.1. 

 

I am having difficulty getting DASYlab to communicate via modbus with an automation direct Stride SIO-MB16CDD2 which I am using to control some pneumatic valves.  The Stride I/O module specifications for network connectivity are as follows:

image.png.c02d891d77dae1d26529f63618643fbb.png

The Stride I/O module appears to be working correctly, as I can communicate with it by putting the devices IP address into a web browser, and using the web interface to turn on digital outputs has the desired effect.

The network settings on my Stride I/O module are as shown (these are default settings):

image.thumb.png.1f966f5b6449fa02a91aa068491292f8.png

image.thumb.png.7d60c9ef50cf8f0ffe0869db355c571a.png

The full manual for this device can be found here: https://cdn.automationdirect.com/static/manuals/stridefio/siomb16cdd2ug.pdf

Here is a screenshot of the portion of the manual that appears to be relevant to the issue I’m dealing with:

image.thumb.png.d8dfb6a2e6132e187de451516dfe344b.png

image.thumb.png.6f7c424ca071a222b954ed370b210037.png

My DASYlab control process is currently very simple as I’m currently just trying to successfully establish control of digital outputs:

image.png.2eb446023f40588a6b6c6716199de23a.png

The switch settings are as shown below:

image.thumb.png.075e104a8cca6030b2b133dc245034f0.png

The modbus digital output settings are currently as shown below:

image.png.5783d3d0769837a332d5e17e617e83f1.png

image.png.984debda110c78d18839be983acf50f1.png

It would be greatly appreciated if someone with knowledge in this area could help me understand what I need to do differently to avoid getting the following error:

image.png.36ce1156a2c0941128ff3b9ac4874b8e.png

In addition to the settings tried here, I have tried a bunch of different combinations of addresses and start- register values in the DASYlab modbus digital output but none have worked.  The values shown above are the ones that I thought had the highest likelihood  of working.  Networking, Hex, and communication protocols are not my area of expertise and I really don’t understand much about coils and registers so feel free to point out any essential steps that I didn’t mention that may seem obvious.

 

Thanks for any help you can provide!

4 answers to this question

Recommended Posts

  • 0
Posted

The DASYLab documentation regarding Modbus control suffers greatly, and making matters worse, not all device manufacturers adhere to the standard. 

The DASYLab Modbus Digital Output bitwise write goes by registers offsets from 40000. Register numbers automatically get added to 40000 behind the scenes. Setting the Start-register to 31 (not 40031) and enabling eight channels would write outputs #0 - #7. If bitwise is unchecked, writing hex 0x00FF to address 31 should set outputs #0 - #7.

Try using a decimal value of 31 with the bitwise box checked and eight channels enabled. If it fails, see if you can write a single output using 489 (coil address of output #0)

Also try 31 with bitwise unchecked and writing a value of 255 to set outputs #0 - #7. 

  • 0
Posted

Thanks for the quick follow up!

I just tried the following with a single output:

image.png.8b8fad892f2f7f8942bc7d21933021f2.png

This was unsuccessful, so next I tried:

image.thumb.png.e35083f414d5d0c27ebde55d1702164e.png

This was also unsuccessful, so next I tried:

image.thumb.png.6ae6f3815798c46ed99f593886594dae.png

This was also unsuccessful, so next I tried:

image.thumb.png.cc2bae4dcb28d87e77cddc5fafd35125.png

This was also unsuccessful, so next I tried:

image.thumb.png.82ca1eb979b1052ab4c60126fd52d20b.png

Still no success to report. 

Did I attempt the settings you had in mind correctly?  I also tried putting 0x00FF in the start byte box but it didn’t accept this input and changed it to 0 when I closed the window.   Is there something else I should try?

Best regards,

-Dan

 

  • 0
Posted

I found a Modbus simulator program and used it to check the output. I didn't have any luck updating  4xxxx holding registers, but I was able to update individual coil outputs. According to your documentation, the coil outputs are 489 through 496. I had to set the start register to 488 for it to begin at 489. I noticed that the value written must be 2 or more, which is a mystery to me. Luckily, the default output value for a Switch is 5. I hope this helps.

 

image.png

Modbus.DSB

  • 0
Posted (edited)

Great news! – It started working once I set the start-register to 488 as you suggested. 

I’m including screenshots in this reply of all the settings I used to get it working:

image.thumb.png.1606d326366a607d8f8cb3a2179dfbf9.png

Note that in the image above showing the IP address there is a 02 after the 5 that isn't shown due to the text box being too small.  I had entered the 192.168.1.100 portion and DASYlab automatically adds a :502 to the end.

image.png.724ec53d5b0988776fbf138654c076e1.png

image.thumb.png.b0f52f7475bd8492fa2f22db4ced0ea3.png

The computer ethernet card was set to a static IPv4 address of 192.168.1.101 and the computer was connected to the Stride IO module with a standard "straight thru" RJ45  ethernet cable.

I was also able to get the digital inputs working using the following settings:

image.png.12a3260181938922e7ecc83e539dc5cd.png

Hopefully this will help others.

Thank you for your assistance with this issue JRys.

-Dan

Edited by Dan----
Adding content for posterity

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...