10 Replies Latest reply on Apr 28, 2014 5:56 PM by asorokina

    PI ACE Scheduler for multiple PI servers

    priya.unni

      Hi,

       

       

       

      Is it possible for a single ACE scheduler hosted on a PI server to write to multiple other PI servers (many target PI servers) ? If yes, then how to configure it?

       

      Kindly advise.

       

       

       

      Thanks,

       

      Priya

       

       

        • Re: PI ACE Scheduler for multiple PI servers
          Marcos Vainer Loeff

          Hello Priya,

           

          If you read the first page of Chapter 1 of PI ACE 2010 R2 User Guide, you will see that one of the main features of  PI ACE is to be use multiple PI tags from multiple PI Servers in calculations.

           

          On the PI ACE Wizard, when you define the input and output tags during the creation of a new ACE executable, you should just write the full path of the tag with the PI Server name like \\MARC-PI2014\SINUSOID. This way you are able to use multiple PI tags from multiple PI Servers in PI ACE calculations.

           

          Hope this helps you!

            • Re: PI ACE Scheduler for multiple PI servers
              priya.unni

              Hello Marc,

               

              Thank you for the email.

               

              I understand that we can use multiple PI tags from different PI servers in ACE calculations.

               

              But what I want to know is about the ACE scheduler configuration.

               

              Say  I have 2 PI servers and an ACE box, and my scheduler is installed on one of the PI servers (  and not on the ace box), then in this case, how does my scheduler work? I would like to know explicitly about how the scheduler connects to either of the PI servers.

               

              Kindly share your thoughts.

               

              Thanks again!

                • Re: PI ACE Scheduler for multiple PI servers
                  Rhys Kirk

                  No, you can only write to 1 PI Server from a single ACE scheduler.

                   

                  Abacus on the other hand....

                    • Re: PI ACE Scheduler for multiple PI servers
                      xwang

                      Hi Priya,

                       

                      PI ACE has the default SDK connection to one PI server, therefore, generally, it could just write the value to that PI server.  However, if you include PI SDK/PI AF SDK in the project, your goal could be achieved.  However, it is necessary to create SDK connections at the begining of the project at first.

                       

                      Moreover, PI ACE scheduler could just be used for single PI server.  Therefore, if you need some other natrual or time triggers from/for another PI server, you have to make a programming.

                       

                      Xi Wang

                       

                      vCampus team

                        • Re: PI ACE Scheduler for multiple PI servers

                          Dear all,

                           

                          PI ACE is using PI SDK to retrieve events from the PI Server but PI API to write values. N-way buffering against a PI Server Collective is a supported feature. I haven't tried this but with the new PI Buffer Subsystem writing against multiple PI Data Archives (single PI Servers or Collectives) should work. New PI Buffer Subsystem refers to version 4.3 that is not released yet. A pre-release is available at vCampus Download Center.

                            • Re: PI ACE Scheduler for multiple PI servers
                              Rhys Kirk

                              Gregor Beck

                              Dear all,

                               

                              PI ACE is using PI SDK to retrieve events from the PI Server but PI API to write values. N-way buffering against a PI Server Collective is a supported feature. I haven't tried this but with the new PI Buffer Subsystem writing against multiple PI Data Archives (single PI Servers or Collectives) should work. New PI Buffer Subsystem refers to version 4.3 that is not released yet. A pre-release is available at vCampus Download Center.

                               

                              That doesn't help though because PI ACE is hard coded to only have a single target PI Server. If you need multiple target PI Servers you'll likely be able to achieve your calculation needs in Abacus, with significantly more benefits.

                               

                              You could write code within an ACE context to have multiple connections to different servers, but you'd have to ask yourself why you don't just spin up a VM with an additional ACE scheduler.

                                • Re: PI ACE Scheduler for multiple PI servers
                                  priya.unni

                                  How about this configuration?

                                   

                                  ACE scheduler hosted on ACE box. ACE class libraries hosted on one of the two PI servers( which implies the scheduler points to this server).

                                   

                                  But the calculations utilize the MDB structure and PI tags on either of the two PI servers depending on the business requirements.

                                   

                                  Is this a feasible option? In this case, will I be able to write to the output tags on the other PI server as well?

                                   

                                  Please let me know.

                                    • Re: PI ACE Scheduler for multiple PI servers
                                      xwang

                                      Hi Priya,

                                       

                                      My suggestion is to use PI SDK/PI AF SDK to achieve your goal.  As you know, PI ACE is a plug-in on VS.  Therefore, it is possible to add the .dll reference on any project for it.  I make some screenshot, wish this could help you.

                                       

                                       

                                       

                                      1. Add the PI SDK as the reference:

                                       

                                       

                                       

                                       

                                      2. Select the reference what you need:

                                       

                                       

                                       

                                       

                                      3. Import your choice to the project:

                                       

                                       

                                      Then, you could PI SDK to connect any PI server in your network, and could create PI points, write values into these points.

                                       

                                       

                                       

                                      Xi Wang

                                       

                                      vCampus team

                                        • Re: PI ACE Scheduler for multiple PI servers
                                          Marcos Vainer Loeff

                                          Hello Priya,

                                           

                                          You could implement this strategy but as PI ACE is hard coded to only have a single target PI Server, you will have to add external libraries (as following  Xi’s procedure) in order to send data to 2 PI Servers.

                                            • Re: PI ACE Scheduler for multiple PI servers
                                              asorokina

                                              Hello Priya,

                                               

                                               

                                               

                                              Could you please clarify what is your end goal? Is my understanding correct, that you want to run one ACE scheduler against one PI Server and want to switch it sometimes (per business need) to the 2nd PI Server? What is the business need/requirement? Do you have different set of calculations on these 2 PI Servers?  

                                               

                                              If your goal is to write into tags from multiple PI Servers, is there a reason not to follow Marcos's suggestion in his first reply? As already said, ACE scheduler can be pointed to only one target PI Server. However ACE Scheduler can still write data to different PI Server's.

                                               

                                               

                                               

                                              When you define input and output aliases in the ACE Wizard, you can define output tags from different PI Servers.

                                               

                                              For the following example, I have: Server A - all ACE components, Server B - PI Server, Server C - PI Server (PI Server B and C are not in collective). ACE Scheduler Target PI Server is PI Server B.

                                               

                                              On the screenshot below, there are 2 input tags and 2 output tags defined.

                                               

                                              CDT158 and ACE_output_Server_B are from PI Server B.

                                               

                                              SINUSOID2 and ACE_output_Server_C are from PI Server C. 

                                               

                                              6064.CurrentValues.bmp

                                               

                                              Calculation for both output tags is the same: CDT158*2. Scheduling is natural and is based on the tag SINUSOID2 from PI Server C.

                                               

                                              2313.CURVALs.bmp

                                               

                                               

                                               

                                              Kind regards,

                                               

                                              Anna