The Rockwell ACD file is an archive file that contains all the files that are used by RSLogix/Studio 5000.
It consists of a number of text files containing version information, compressed XML files containing project and tag information as well as a number of database files.
This library allows you to unzip all the files and extract information from these files.
To install acd tools from pypi run
pip install acd-tools
To get the Controller object and get the program/routines/rungs/tags/datatypes, use something like this
from acd.api import ImportProjectFromFile
controller = ImportProjectFromFile("../resources/CuteLogix.ACD").import_project().controller
rung = controller.programs[0].routines[0].rungs[0]
data_type = controller.data_types[-1]
tag_name = controller.tags[75].text
tag_data_type = controller.tags[75].data_type
To extract the file use the acd.api.ExtractAcdDatabase class. This extracts the database files to a directory.
from acd.api import ExtractAcdDatabase
ExtractAcdDatabase('CuteLogix.ACD', 'output_directory').extract()
A select number of database files contain interesting information. This will save each database record to a file to make it easier to see whats in them.
from acd.api import ExtractAcdDatabaseRecordsToFiles
ExtractAcdDatabaseRecordsToFiles('CuteLogix.ACD', 'output_directory').extract()
The Comps database contains a lot of information and can be export as a directory structure to make it easier to look at.
from acd.api import DumpCompsRecordsToFile
DumpCompsRecordsToFile('CuteLogix.ACD', 'output_directory').extract()
This hasn't been started but could be feasible eventually.