I have recently been working on a project to upgrade our InTouch SCADA to ArchestrA. This has a number of challenges, but a big one is how to be sure that you got all the right tag names going to the correct IO. We use DNP and SCD5200 RTUs almost exclusively for large sites, so I have started writing a tool that parses all of our SCD5200 RTU configurations, our InTouch tag database, and the ArchestrA database and produces a spreadsheet with a comparison of all tags and addresses. It can take also take a map file that maps RTU names to ArchestrA areas to InTouch topic names. You can then review this report to compare any glaring differences - still a time consuming process but damn site quicker than doing it manually. The tool is fairly functional at present and parses all my data correctly, but I've no doubt that there are a lot of edge cases not taken care of yet.
Source is on Github.
April 5th, 2017 at 9:31 am
Hi there, we wrote a tool to import intouch tags into SP attributes if your're interested.
April 5th, 2017 at 6:54 pm
Yea mate always interested, got the source online somewhere or is it closed?
April 26th, 2018 at 3:09 pm
I'll try again in the correct place, as we use the di object for redundant fail over things are slightly different, I have merged you area logic into mine
SELECT greferring3.tag_name as Area, greferring1.tag_name + '.' + pinst.primitive_name AS BaseObject_Tag, LEFT(ar.reference_string, CHARINDEX('.', ar.reference_string) - 1) AS ConnectionObject,
RIGHT(ar.reference_string, LEN(ar.reference_string) - CHARINDEX('.', ar.reference_string)) AS AccessString
FROM dbo.attribute_reference AS ar
INNER JOIN
dbo.gobject AS greferring1 ON ar.package_id = greferring1.checked_in_package_id
INNER JOIN
dbo.primitive_instance AS pinst ON ar.package_id = pinst.package_id AND pinst.mx_primitive_id = ar.referring_mx_primitive_id
INNER JOIN
gobject greferring2 on ar.gobject_id = greferring2.gobject_id
INNER JOIN
gobject greferring3 on greferring2.area_gobject_id = greferring3.gobject_id
WHERE (ar.resolved_gobject_id > 0) AND (ar.is_valid = 0) AND (ar.resolved_mx_primitive_id = 0)
April 27th, 2018 at 6:50 am
Thanks for sharing! I'd be interested to see the setup you guys have over there sometime, sounds like interesting stuff from what I hear.