Logix 5K Multi User Editing

The Plc Kid

Member
Join Date
Feb 2009
Location
Macon, Georgia
Posts
3,233
On a large install with several programmers can everyone make online changes to the same processor?

How does multi user editing work? What can you do and what can't you do?
 
PLC Kid,

I have worked on a site where there have been up to 8 people all doing on line edits on the same processor.

It tends to be rather slow, and every so often you will get a box pop up that tells you that all the DATA is being compiled, so everybody elses changes are being added to your online file.

The only thing we stipulated and whether this was right or wrong was that only one person could be online editing one routine at a time.

As far as I can remember even adding tags online worked and these were updated when the correlating changes box appeared.

Mark
 
A few years back I did a rush job for a specialized welding bot for offshore rigs - We had two programmers online simultaneously creating different parts of the program - there were the occasional waits Mark mentioned and once in a while one of us would get booted offline, as well as the occasional need to change something that could only be done offline, but despite that it went much faster than if only one of us had programmed it. We sat right next to each other so we could collaborate. After we were done we had quite a bit of orphaned UDTs and abandoned tags but clean up didn't take too long.


edit to add:
We have a UDT called ProgrammerData in all our programs that contains various elements intended for temporary and development use. We define a tag using that UDT for each programmer's name. This makes it easy to keep track of and document what you are and others are working on and debugging. If a change become permanent then appropriately scoped tags are assigned. You are welcome to use it and adapt it to your needs.
Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--Miscellaneous bits for use by programmers for temporary changes, debugging, testing, etc.-->
<RSLogix5000Content SchemaRevision="1.0" SoftwareRevision="17.00" TargetName="ProgrammerData" TargetType="DataType" ContainsContext="true" Owner="Alaric" ExportDate="Thu Aug 18 10:20:24 2011" ExportOptions="References DecoratedData Context Dependencies AllProjDocTrans">
<Controller Use="Context" Name="Alaric">
<DataTypes Use="Context">
<DataType Use="Target" Name="ProgrammerData" Family="NoFamily" Class="User">
<Description>
<![CDATA[Miscellaneous bits for use by programmers for temporary changes, debugging, testing, etc.]]>
</Description>
<Members>
<Member Name="ZZZZZZZZZZProgrammer0" DataType="SINT" Dimension="0" Radix="Decimal" Hidden="true"/>
<Member Name="OFF" DataType="BIT" Dimension="0" Radix="Decimal" Hidden="false" Target="ZZZZZZZZZZProgrammer0" BitNumber="0">
<Description>
<![CDATA[ALWAYS OFF]]>
</Description>
</Member>
<Member Name="ON" DataType="BIT" Dimension="0" Radix="Decimal" Hidden="false" Target="ZZZZZZZZZZProgrammer0" BitNumber="1">
<Description>
<![CDATA[ALWAYS ON]]>
</Description>
</Member>
<Member Name="MiscBits" DataType="BOOL" Dimension="32" Radix="Decimal" Hidden="false"/>
<Member Name="TestDint" DataType="DINT" Dimension="6" Radix="Decimal" Hidden="false"/>
<Member Name="TestReal" DataType="REAL" Dimension="6" Radix="Float" Hidden="false"/>
<Member Name="TestTimer1" DataType="TIMER" Dimension="0" Radix="NullType" Hidden="false"/>
<Member Name="TestTimer2" DataType="TIMER" Dimension="0" Radix="NullType" Hidden="false"/>
<Member Name="TestTimer3" DataType="TIMER" Dimension="0" Radix="NullType" Hidden="false"/>
<Member Name="TestTimer4" DataType="TIMER" Dimension="0" Radix="NullType" Hidden="false"/>
<Member Name="TestCounter1" DataType="COUNTER" Dimension="0" Radix="NullType" Hidden="false"/>
<Member Name="TestCounter2" DataType="COUNTER" Dimension="0" Radix="NullType" Hidden="false"/>
<Member Name="TestControl" DataType="CONTROL" Dimension="0" Radix="NullType" Hidden="false"/>
</Members>
</DataType>
</DataTypes>
</Controller>
</RSLogix5000Content>
 
Last edited:
I was on a large project where there were multiple programmers on one CLX. Designate the first person online as the master. He should be the ONLY one to actually save a project. Sometimes when people accept changes, the rung that your on shifts.
 
I was on a large project where there were multiple programmers on one CLX. Designate the first person online as the master. He should be the ONLY one to actually save a project. Sometimes when people accept changes, the rung that your on shifts.

Looking at technote 25961 it appear they recommend users working in different programs to prevent that from happening which is what we will be doing anyway.
 
A few years back I did a rush job for a specialized welding bot for offshore rigs - We had two programmers online simultaneously creating different parts of the program - there were the occasional waits Mark mentioned and once in a while one of us would get booted offline, as well as the occasional need to change something that could only be done offline, but despite that it went much faster than if only one of us had programmed it. We sat right next to each other so we could collaborate. After we were done we had quite a bit of orphaned UDTs and abandoned tags but clean up didn't take too long.


edit to add:
We have a UDT called ProgrammerData in all our programs that contains various elements intended for temporary and development use. We define a tag using that UDT for each programmer's name. This makes it easy to keep track of and document what you are and others are working on and debugging. If a change become permanent then appropriately scoped tags are assigned. You are welcome to use it and adapt it to your needs.
Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--Miscellaneous bits for use by programmers for temporary changes, debugging, testing, etc.-->
<RSLogix5000Content SchemaRevision="1.0" SoftwareRevision="17.00" TargetName="ProgrammerData" TargetType="DataType" ContainsContext="true" Owner="Alaric" ExportDate="Thu Aug 18 10:20:24 2011" ExportOptions="References DecoratedData Context Dependencies AllProjDocTrans">
<Controller Use="Context" Name="Alaric">
<DataTypes Use="Context">
<DataType Use="Target" Name="ProgrammerData" Family="NoFamily" Class="User">
<Description>
<![CDATA[Miscellaneous bits for use by programmers for temporary changes, debugging, testing, etc.]]>
</Description>
<Members>
<Member Name="ZZZZZZZZZZProgrammer0" DataType="SINT" Dimension="0" Radix="Decimal" Hidden="true"/>
<Member Name="OFF" DataType="BIT" Dimension="0" Radix="Decimal" Hidden="false" Target="ZZZZZZZZZZProgrammer0" BitNumber="0">
<Description>
<![CDATA[ALWAYS OFF]]>
</Description>
</Member>
<Member Name="ON" DataType="BIT" Dimension="0" Radix="Decimal" Hidden="false" Target="ZZZZZZZZZZProgrammer0" BitNumber="1">
<Description>
<![CDATA[ALWAYS ON]]>
</Description>
</Member>
<Member Name="MiscBits" DataType="BOOL" Dimension="32" Radix="Decimal" Hidden="false"/>
<Member Name="TestDint" DataType="DINT" Dimension="6" Radix="Decimal" Hidden="false"/>
<Member Name="TestReal" DataType="REAL" Dimension="6" Radix="Float" Hidden="false"/>
<Member Name="TestTimer1" DataType="TIMER" Dimension="0" Radix="NullType" Hidden="false"/>
<Member Name="TestTimer2" DataType="TIMER" Dimension="0" Radix="NullType" Hidden="false"/>
<Member Name="TestTimer3" DataType="TIMER" Dimension="0" Radix="NullType" Hidden="false"/>
<Member Name="TestTimer4" DataType="TIMER" Dimension="0" Radix="NullType" Hidden="false"/>
<Member Name="TestCounter1" DataType="COUNTER" Dimension="0" Radix="NullType" Hidden="false"/>
<Member Name="TestCounter2" DataType="COUNTER" Dimension="0" Radix="NullType" Hidden="false"/>
<Member Name="TestControl" DataType="CONTROL" Dimension="0" Radix="NullType" Hidden="false"/>
</Members>
</DataType>
</DataTypes>
</Controller>
</RSLogix5000Content>

I will put it to use. Thanks for sharing it Alaric.
 
The only issue that I have had is the rung comments and losing untested edits
Logix Version <12

If a programmer changes a comment that comment did not appear in the other programmers PC
We designated a "Master" program that we updated the comments on using import comments etc

The other issue was when you applied all changes the other programmer would loose all untested edits in the same program (or was it routine) - The apply changes would cause an "unedit" to occur.

Tags no problem - Tag comments as above

These are the only gotcha's I remember.

+1 for sitting next to each other
+1 for one programmer per routine or program
 

Similar Topics

Hi Guys, I'm trying to integrate Pilz Ethernet IP Module to ControlLogix. I added Pilz module as a Generic Ethernet module and I'm able to...
Replies
2
Views
510
Hi, So I have one push button(non-latch momentary) and would like use it to trigger two function sequences with the short press for primary...
Replies
3
Views
1,992
I am trying to clean up a project by creating a UDT that I will reuse, and while I was creating the UDT tags I got to a 2 dimensional array, and...
Replies
6
Views
7,340
I'm working on a machine that will have 8 steppers. Nothing complicated and will probably use a combination of standalone Oriental indexers as...
Replies
0
Views
3,133
DOES ANY ONE KNOW WHAT i WOULD NEED TO CONNECT 2 HMI'S TO A MICRO 1200?? MY CURRENT SYSTEM IS A MICRO 1200 WITH A PANEL MOUNTED PV550 TOUCH...
Replies
7
Views
3,515
Back
Top Bottom