Hello!
I have 4 Foxtrot controllers on the network. 2 units are Foxtrot 2xxx and 2 units are Foxtrot 1xxx. Each of these controllers has a user web interface. My client wants to designate one of the controllers as the "main" one and achieve duplication of all web pages from all controllers onto this "main" controller. In other words, they want to have a single unified user web interface on the "main" controller that includes all web pages from all four controllers. How can I achieve this? I've considered the following options:
- DATA SHARING NET: This isn't suitable due to the 238-byte limitation in PLC mode, as the web interfaces are complex, and each page has a large number of variables.
- The most promising idea seemed to be creating copies of pages from other controllers on the "main" controller. Modify the XMLHttpRequest of the "main" controller to request XML pages from the other controllers. However, I read that Foxtrot 1xxx doesn't support CORS, so this approach might not work.
- Using the "Inserted Web page" tool in Web Maker: This also isn't very suitable, as users might face inconveniences with this method. For example, additional authentication might be required on these inserted pages.
- It might be possible to use the Web API, but I don't currently understand how to do it without a complete code rewrite for the pages.
Could you please advise on how to solve my problem? Are there any appropriate approaches for this, or any examples?
Thank you very much!
Answers 2
Your analysis is completely accurate. This assignment cannot be solved satisfactorily using the PLC website. For example, Reliance SCADA can be used to create central control from one place, Reliance Server is started on a computer in the network and users connect to the server from web browsers as thin clients. All PLCs exchange data with the server independently and the task can be solved without modifying the PLC application program. But it means that you have to run a Reliance Server or Control Server somewhere and it is paid with the price depending on the number of data points served.
In the case of sharing data between PLCs with the aim of displaying data from all PLCs on the website of one of them, sooner or later you will encounter a limited amount of data that can be synchronized in this way, or a delay that arises when you gradually establish a point-to-point connection between individual PLCs , to exchange all necessary data in master-slave communication.
If you link from the pages of one PLC to a page in another PLC, this will again require logging in when switching from one PLC to another, and you won't solve it even with authorization based on the MAC address.
Central units of the CP-10xx series do not really support CORS, and due to the discontinued support of these units, further development in this direction will no longer take place.
It is possible to publish the data (which you would otherwise visualize via the PLC website or Reliance Server) also via PlcComS communication server (running on CP-20xx) or via the TecoAPI interface, but in that case you would again have to take care of programming the add-on application that would visualize the data on a computer or mobile phone. So this task does not have a simple solution.
Hello! Thank you for your response. It's truly unfortunate that there isn't a straightforward way to route web pages. Foxtrot's web server and webmaker implementations are exceptionally well-executed. As far as I know, none of the other controllers I'm familiar with offer such built-in web page capabilities and a convenient toolset for web development. This represents a significant competitive advantage for Foxtrot. These words are like magic to customers: "You don't have to pay for SCADA or additional devices, not even a Raspberry or ESP32." Therefore, I would like to recommend that you consider implementing some form of web page routing or duplication in the future. I guess it's not very difficult for the Foxtrot developers. Thank you!
Your answer
You have to be signed-in for asking a question. Continue after sign-in.