Library block copy

Walidcontrol, the libraries are usually referenced by your overall project as seen by one of the attached snips. Then each component of your system can reference those libraries if desired.
So if you are creating an entire new project you will have to add all libraries desired to the project and then reference them for each component that is part of the project that needs to use those libraries. Hopefully the snips attached help.
Short answer to your question is you should be able to reference libraries available to other projects if you are creating a new project.


Thank you for the answer to my question,
but the problem is that the block I want to use, does not excite in my project's library , so I cannot insert this block in my project !!

SO !! Is there a method to copy this block from another library (from another project) where it exists to my project where it doesn't exist?
Walidcontrol, is it possible for you to include some screenshots of what you are trying to do?
Do both of these projects exist on the same workstation?
What type of projects are these?
I don't think you can copy blocks from one project to the next, but I have not specifically tried that.
But if the projects both exist on the same workstation you should be able to reference the library you want into the project that does not have it.
If the library exists on a different work station then you may be able to copy that library from that workstation to the other and then reference it, but that I have also not personally tried to do.
Generally you can simply open both projects (run more than one instance of ToolboxST) and copy-paste from one library window to another. Sometimes the library is protected and you cannot drill down to the specific block, but you can always copy the whole library. How well this will work depends on how the block is written--sometimes they depend on attributes of parent blocks or devices.

You can also add existing libraries to a library container, or existing library containers to a workspace.
Are we talking about copying a library between different versions of Toolbox? AND, are we presuming they are same "basic" version (such as both 4.nn.nn)? What if the block is a 6.nn.nn library, and it's being copied and pasted to a 4.nn.nn project?

I kind of find this a little hard to grasp, because doing a build and calc does not result in executable ("compiled") code being downloaded to the Mark VI control processors--at least I was always told this was one of the things which separated Mark* programmable action controllers (purpose-built) from other PACs/PLCs. One of the reasons STUXNET was successful is that the PLC it was targeted for did--download executable code to the PLC controller(s). (In fact, I think it was one of the reasons "build and calc" is not called "compile.")

In my understanding, the "built and calc'ed" code in many cases makes calls to blocks ("subroutines") and when downloaded to the control processors they would recognize the calls and refer to the library blocks previously downloaded (so-called p-code).

To my understanding, if the library/block doesn't exist in the p-code previously downloaded to the control processors the app code was not "run time"--it does NOT have executable code capable of running libraries/blocks which don't already exist in the control processor (from a p-code download).

I kind of liken it to interpreted versus compiled code. Interpreted code is slower to run, but it also is not directly executable by the processor--each statement has to be "converted" to machine code. Compiled code is ready-to-run, executable code that does not require any "conversion" or "translation" to be executed. And, the Mark relies on the p-code previously downloaded to run the app code (the output of the "build and calc" operation(s)). If the library/block does not exist in p-code (firmware?) then it can't be executed; it's a "call to the wrong number."

I've been wrong before, and I'll be wrong many times in the future. But, my personal understanding of the Mark* turbine control system is that what's in "PROM" (to use Mark V terms), or p-code ("firmware") to use Mark VI terms, must exactly match what is built and calc'ed and downloaded to the control processors. Or it's not going to run. So, it doesn't seem to me that one can copy a library/block from one version of Toolbox to another and build and calc it, and download it and expect it to run properly, if at all. Seems pretty risky to this old man.
I guess you want to use a certain application group library instead of the entire library. If so, you can follow the steps below

  • Only copy/replace the the _Xxxxxxx.xlm from another project to your Libraries folder(Like GT_Libraries)
    • Close the all of device if open(Like G1, G2)
    • Open the library then close the Library file (Refresh and Reload this new library)
  • Open the G1 file, Instance the only _Xxxxxxxxxxx.xml

If you want to use the entire Library of other projects, you can use ‘Insert existing->library container’, don't forget open this new Library then close again for refesh and reload the new library.