You are not registered yet. Please click here to register!


 
 
plc storereviewsdownloads
This board is for PLC Related Q&A ONLY. Please DON'T use it for advertising, etc.
 
Try our online PLC Simulator- FREE.  Click here now to try it.

New Here? Please read this important info!!!


Go Back   PLCS.net - Interactive Q & A > PLCS.net - Interactive Q & A > LIVE PLC Questions And Answers

Reply
 
Thread Tools Display Modes
Old July 21st, 2021, 12:09 PM   #1
edson_lg
Member
Mexico

edson_lg is offline
 
Join Date: Jul 2021
Location: Monterrey
Posts: 2
Migration from GE Series 90-30 to AB Studio 5000

Hello, guys.

I am migrating a PLC program from a GE Series 90-30 PLC to an AB L306B PLC.

During the ladder program translation there are some instructions that i cannot find an equivalent in Studio 5000. I'm quite new to AB so i would like some help.

In GE I have:

Instruction:

ARRAY_MOVE_INT

With parameters:

SR: R05001
SNX: R07003
DNX: 1
N: 1
DS: R06000
L: 33

How would i go to insert a simmilar instruction in Studio 5000?
I have no idea what values go into the registers.

Hope you can guide me. Thanks.
  Reply With Quote
Old July 21st, 2021, 12:22 PM   #2
drbitboy
Lifetime Supporting Member
United States

drbitboy is offline
 
drbitboy's Avatar
 
Join Date: Dec 2019
Location: Rochester, NY
Posts: 3,391
https://literature.rockwellautomatio...5%2C333%2C0%5D


the inputs and outputs are slightly different e.g. the source and destination [array] and [index] inputs and output for ARRAY_MOVE are separate, but combined into single arguments in Logix 5000, but the operation should be similar.
__________________
i) Take care of the bits, and the bytes will take care of themselves.
ii) There is no software problem that cannot be solved with another layer of indirection.
  Reply With Quote
Old July 21st, 2021, 01:06 PM   #3
Steve Bailey
Lifetime Supporting Member + Moderator
United States

Steve Bailey is offline
 
Steve Bailey's Avatar
 
Join Date: Apr 2002
Location: The boondocks of Western Massachusetts USA
Posts: 7,617
The 90-30 did not support indirect addressing. The Array instructions are a work-around. You should be able to duplicate the function by creating a 33-element integer tag array in Studio 5000 and using indexed addressing to copy one of the elements of the array to a destination tag.

The ARRAY_MOVE instruction in your example defines a source array of 33 integers starting at %R5001. It also defines a destination array of the same length starting at %R6000, although only %R6000 is actually used. The value in %R7003 at SNX parameter is the index into the source array. The N parameter specifies that one value is moved. The DNX parameter specifies that the value gets moved to the first element of the destination array (%R6000). So, if %R7003 contains a value of 5, the function copies the contents of %R5005 to %R6000.

Last edited by Steve Bailey; July 21st, 2021 at 01:19 PM.
  Reply With Quote
Old July 21st, 2021, 01:16 PM   #4
edson_lg
Member
Mexico

edson_lg is offline
 
Join Date: Jul 2021
Location: Monterrey
Posts: 2
Cop

Thank you very much for your help.

Your link sends me to the General Instructions publication for AB, which i already had and have checked. I dont know if you could be more precise and indicate me the specific instruction or page that you are referring me to in the document.

I have beed using the COP instruction in which i just use the Source and Destination arrays with the Lenght, but i dont really know if the other indexes from the GE program will affect the operation significantly since in the GE Programming Manual specifies the shifting occurs with the argument:

"The ARRAY_MOVE function has five input parameters and two output parameters. When the function receives power flow, the number of data elements in the count indicator (N) is extracted from the input array starting with the indexed location (SR + SNX 1). The data elements are written to the output array starting with the indexed location (DS + DNX 1). The LEN operand specifies the number of elements that make up each array."

I apreciate your time.
  Reply With Quote
Old July 21st, 2021, 02:33 PM   #5
drbitboy
Lifetime Supporting Member
United States

drbitboy is offline
 
drbitboy's Avatar
 
Join Date: Dec 2019
Location: Rochester, NY
Posts: 3,391
[@Steve Bailey please confirm this is correct; it is not my specialty but it seems to be an straightforward case of bookkeeping]

Sorry I did not look as deeply as I could have:
  • Create a new rung in A-B software
  • Click on the rung number on the left
  • Hit Enter
  • Type in either
    • COP R05001[R07003] R06000[0] 1
      • A-B Source (part 1) R05001 is analog to Fanuc SR
      • A-B Source (part 2) R07003 is zero-based analog to Fanuc one-based SNX
      • A-B Dest (part 1) R06000 is analog to Fanuc DS
      • A-B Dest (part 2) 0 is zero-based analog to Fanuc one-based DNX (1)
      • A-B Length 1 is analog to Fanuc N (1)
      • N.B. Assumes R05001 and R06000 are arrays of INTs, and R07003 is an INT tag
  • Or, as @Steve Bailey noticed ARRAY_MOVE is being used because indirect addressing is unavailable in Fanuc-land, type in
    • MOV R05001[R07003] R06000
      • N.B. Assumes R05001 is an array of INTs, and R07003 (zero-based) and R06000 are INT tags
      • N is ignored because it is 1 and implicit in MOV
  • Hit Enter again
  • N.B. R07003 will probably be zero-based in A-B
COP (or CPS) is the closest thing to ARRAY_MOVE; MOV also works in this particular case because Fanuc N is 1.


fanucab01.png

fanucab02.png
__________________
i) Take care of the bits, and the bytes will take care of themselves.
ii) There is no software problem that cannot be solved with another layer of indirection.
  Reply With Quote
Old July 21st, 2021, 02:51 PM   #6
Steve Bailey
Lifetime Supporting Member + Moderator
United States

Steve Bailey is offline
 
Steve Bailey's Avatar
 
Join Date: Apr 2002
Location: The boondocks of Western Massachusetts USA
Posts: 7,617
Studio 5000 is not my strong point. I'm sure I could work it out with a little trial and error, but I'm hesitant to give a thumbs up or thumbs down to any potential solution.

Simply put, the function in the 90-30, as presented, copies the contents of the Nth element of a 33-element integer array to address %R6000, where N is the value of address %R7003.
  Reply With Quote
Reply
Jump to Live PLC Question and Answer Forum

Bookmarks


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Topics
Thread Thread Starter Forum Replies Last Post
Studio 5000 v31.00.00 - Anomaly with View Designer v2/v3 Geospark LIVE PLC Questions And Answers 5 January 20th, 2021 11:09 AM
Studio 5000 version 30 looooong upload time JeffKiper LIVE PLC Questions And Answers 11 April 3rd, 2018 06:46 AM
GE Fanuc Series 90 micro software Ravingmadman LIVE PLC Questions And Answers 6 April 21st, 2016 03:39 PM
ge fanus 90 30 comm problem johnplouffe LIVE PLC Questions And Answers 3 December 17th, 2006 09:43 PM


All times are GMT -4. The time now is 02:23 AM.


.