Remote Operations Forum
Support forum for Schneider Electric SCADA systems, radios and RTUs. From commissioning integration devices and software, to enhancing existing installations or troubleshooting.
Link copied. Please paste this link to share this article on your social media post.
Posted: 2021-11-04 04:58 PM
Hello
I am new to the ScadaPack Range. I am looking for some help to set up some modbus registers in the device.
I need to set up a ScadaPack 470 to communicate with CitectSCADA 2016 via Modbus TCP.
i have been able to do the following
* Set digital input modbus addresses to be able to be read by SCADA
* Set Analog Input modbus addresses to be able to be read by SCADA
What i am wondering if i can do
* Set up some modbus registers so that i can write analog values from the logic to the modbus register to the SCADA. For instance, say i have a rolling counter 0-1000 that increments every second in my logic, how do i write that value to a modbus register (example 40001) so that scada can read it.
I know how to do it in Unity Pro XL, but obviously some of those features are missing from the Remote Connect x70 Logic Editor.
Thankyou.
Link copied. Please paste this link to share this article on your social media post.
Link copied. Please paste this link to share this article on your social media post.
Posted: 2021-11-05 07:56 AM . Last Modified: 2021-11-05 08:26 AM
Hello Joshua,
To allow an external device eg Citect to communicate with an x70 SCADAPack via Modbus requires a few steps be performed, to configure the desired objects with Modbus addresses and configure the port.
1) While OFFLINE, right-click on the SCADAPack x70 Controller DeviceDTM and open the Additional Functions menu
2) Select Project Settings and ensure that Modbus IP Servers is selected
NOTE: This feature is enabled by default, so we're just double-checking here...
3) On the main Configuration - SPx70 Controller tab, select the Objects tab, then Object Configuration
4) Expand the list of Analog, Digital and Counter objects and open an object that will communicate with Citect
5) Select the Modbus tab, enter a Modbus register and data type. Eg for a counter input you might enter 40001 and UINT.
6) Perform this same step with all other objects that must communicate via Modbus.
7) If desired to perform any scaling this can be done on the Basic tab. (eg for analog inputs)
NOTE: if configuring multiple items in a row, you can use the Next > button to move quickly between them.
8/ Once done, press Apply to accept the edits
9) Change to the Configuration tab, select the desired Ethernet port and configure it appropriately.
10) Expand the Modbus section, select Server, and set the Unit Identifier (Station address) as required.
11) Apply these changes made to the RTU.
12) Save the configuration, go Online, then Write the changed configuration to the RTU
Of general interest is this YouTube video series which presents a basic introduction to RemoteConnect and the Logic Editor.
https://www.youtube.com/watch?v=EVwk7ADhCqE&list=PLa7UGrWOTyjlyww9RcENfi8u9i8SKPZ0c&index=16
Link copied. Please paste this link to share this article on your social media post.
Link copied. Please paste this link to share this article on your social media post.
Posted: 2021-11-05 07:56 AM . Last Modified: 2021-11-05 08:26 AM
Hello Joshua,
To allow an external device eg Citect to communicate with an x70 SCADAPack via Modbus requires a few steps be performed, to configure the desired objects with Modbus addresses and configure the port.
1) While OFFLINE, right-click on the SCADAPack x70 Controller DeviceDTM and open the Additional Functions menu
2) Select Project Settings and ensure that Modbus IP Servers is selected
NOTE: This feature is enabled by default, so we're just double-checking here...
3) On the main Configuration - SPx70 Controller tab, select the Objects tab, then Object Configuration
4) Expand the list of Analog, Digital and Counter objects and open an object that will communicate with Citect
5) Select the Modbus tab, enter a Modbus register and data type. Eg for a counter input you might enter 40001 and UINT.
6) Perform this same step with all other objects that must communicate via Modbus.
7) If desired to perform any scaling this can be done on the Basic tab. (eg for analog inputs)
NOTE: if configuring multiple items in a row, you can use the Next > button to move quickly between them.
8/ Once done, press Apply to accept the edits
9) Change to the Configuration tab, select the desired Ethernet port and configure it appropriately.
10) Expand the Modbus section, select Server, and set the Unit Identifier (Station address) as required.
11) Apply these changes made to the RTU.
12) Save the configuration, go Online, then Write the changed configuration to the RTU
Of general interest is this YouTube video series which presents a basic introduction to RemoteConnect and the Logic Editor.
https://www.youtube.com/watch?v=EVwk7ADhCqE&list=PLa7UGrWOTyjlyww9RcENfi8u9i8SKPZ0c&index=16
Link copied. Please paste this link to share this article on your social media post.
Link copied. Please paste this link to share this article on your social media post.
Posted: 2022-07-20 01:55 PM
@Joel_Weder Is this the only possible way? I'm migrating an existing M340 project to a SCADAPack X70 with several hundred modbus word assignments for use with SCADA and an HMI. With the M340, I make use of the address field of a variable and enter "%MW330" for instance. I have many DDTs that are much larger than a modbus register. In M340, I assign the beginning address in the DDT address field, and the rest is automatically mapped as big as it needs to be.
If I understand correctly, the only way to do this in the SCADAPack X70 is to first create a new object in the SCADAPack RemoteConnect Object Configuration, give it the modbus address "40330" and then in the Logic Editor perform a move operation from the desired variable to this new object. With my larger DDTs this would involve much additional work to break up into individual registers.
Are there any other more direct ways of mapping this?
Link copied. Please paste this link to share this article on your social media post.
Link copied. Please paste this link to share this article on your social media post.
Posted: 2022-07-20 03:53 PM . Last Modified: 2022-07-20 03:56 PM
Hi Dan,
Yes, there definitely are a couple of procedures that might work for you. It's difficult to be precise about your exact needs, but here are two procedures that might move you in the right direction. The second option may be more suitable for your specific case.
1) Using Copy on the Objects tab:
- Create a new object in the desired object type e.g. Analog, Boolean, Counter
- Edit the object, give it a name, variable type (eg T_SPx70_ADV_ANALOG)
- Go to the object's Modbus tab and assign it a Modbus register #
- Click OK and Apply
- Select the object, then click the Copy Objects button
- Enter the Number of Copies e.g. 100
- De-select the DNP3 options as you don't want to assign DNP3 addresses
- In the Modbus Options area, the default is to start assigning registers from the next available one
- If you want to start at a specific register #, click "Assign Modbus registers sequentially starting from" then enter the start register.
- This will create objects with the name "xxxxxxx_Copy##" where xxxxxxxx is the original object's name and ## is the copy #.
2) Using Arrays and Excel:
- In Logic Editor,. open Derived Variables
- Enter a name for the array in the first blank row
- In the Type column, click the ellipsis (the ... box)
- Click the Array check-box and enter the desired size
- On the left side in the Libraries area, expand Libset then select SCADAPack x70
- Expand the desired object type (e.g. T_SPx70_ADV_ANALOG), select VALUE_ENG then click OK
- Back in RemoteConnect, click the Update & Build Logic button
- You should now see the new array of objects in the Objects tab Eg TestArray[0]
- Right-click on the SCADAPack x70 Controller Settings DTM, open Additional Functions
- Select Export to Excel file. Navigate to a folder and provide a filename
- Open in Excel, select the Objects tab, and find the Modbus Register column. (column O typically)
- You can quickly add Modbus register #'s for all array elements. Eg for Real analogs, first row enter 40001, 2nd row enter 40003. Select both then drag down the full length of the objects to which registers are to be assigned.
- Then Save the file and close it.
NOTE: Ensure you don't change anything else!
- Back in RemoteConnect, again go to Additional Functions but this time do an Import from Excel file.
- In the Objects list, you'll now see all the array objects have sequential Modbus register addresses
Link copied. Please paste this link to share this article on your social media post.
Link copied. Please paste this link to share this article on your social media post.
Posted: 2023-01-20 11:53 AM . Last Modified: 2023-01-20 11:54 AM
Joel,
I'm following your steps in the solution and youtube video to connect HMI to the SCADAPack. The HMI can read the registers just fine, however any value I write from the HMI does not take. For example, if the modbus register has a value of 5, I can read and display that, but when I try to enter a value of 10, it does not take and stays at 5. The SCADAPack is in run mode. What could I be missing?
Link copied. Please paste this link to share this article on your social media post.
Link copied. Please paste this link to share this article on your social media post.
Posted: 2023-01-20 12:08 PM
Dan, the only thing I can think of offhand is that perhaps the object you're trying to write to using Modbus is also being written to by some logic within the RTU. You'll definitely want to check that. If not, best to contact our Tech Support team.
1-888-226-6876 or
Link copied. Please paste this link to share this article on your social media post.
Create your free account or log in to subscribe to the board - and gain access to more than 10,000+ support articles along with insights from experts and peers.