Skip to content

hutcheb/acd

Repository files navigation

PyPI PyPI - Downloads ACD Tools

Rockwell ACD Project File Tools

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.

Installing

To install acd tools from pypi run

pip install acd-tools

Parsing the ACD file

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

Unzip

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()

Extract Raw Records From ACD Files

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()

Dump Comps Database Records

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()

Converting from ACD to L5X

This hasn't been started but could be feasible eventually.