This is an often-disputed and often-debated issue. It is NSCA’s belief that code ownership needs to be a defined arrangement: something contracted between the software developer, manufacturer, programmer, integrator, and end-user. This is very complex when many parties are involved. There are several legal opinions, numerous case studies, and, in some instances, unresolved project closeout disputes that have gone on for years.
The most important factor is the agreement between the control systems manufacturer and the integrator. Often, the integrator signs a dealer agreement which clearly states that the software, source code, and initial programming will be turned over to the end-user; their license agreement is subject to turning that over.
In other cases, the manufacturer leaves it up to the authorized dealer to transfer the ownership (or not) of the programming information as they see fit.