cancel
Showing results for 
Search instead for 
Did you mean: 
SOLVED

Real Time Control Questions about ctrlX CORE

ctrlXnovo
Long-established Member

Real Time Control Questions about ctrlX CORE

Context: most of these questions are in relation to being able to duplicate functionality that we currently have in the MLC firmware such as running a PLC task that is tied to the Motion Update or Sercos cycle, or even in running a cyclic task at a set interval. The questions revolve around dedicated processor power/time to execute code or described another way: real-time.

I have heard conflicting comments about Blockly and Python. Do they run in the real-time environment?

What languages are real-time and what are not? One ppt seems to show that only C/C++ is possible.

What to expect from the real-time API library, how will it interact with the rest of the control and programming that is non-real-time?

What does "8 million data point access per second" mean as described in the presentations? This seems slow in high axis count applications. Can this be described differently to explain performance of the system? What is considered an "access" and would not the speed of the access depend on what is accessed?

The Blockly demo is sending motion commands to a drive. Is this access similar to how the Open Core Interface for Controls works from outside the MLC? Or is there real-time access?

 

1 REPLY 1
CodeShepherd
Community Moderator

Re: Real Time Control Questions about ctrlX CORE

  1. Python is a deterministic language and does not run in the field bus cycle time (standard understanding of real time) but as fast as its commands can be worked on. It can do sync and async commands.
  2. The language which "real time" programming is possible is IEC (PLC CODE) and C++.
  3. The C++ real time library allows to access or provide real time data. How it is interfering with the rest of the system is depending on your programming structure.
  4. This information is from a sales slide that should show that many accesses are possible to the datalayer. There are new measurements for the time needed for accesses to the control. I will check if we can share them.
  5. Blockly can do both, sending commands out of the browser to the target and directly executing code on the control. It uses the Python interpreter to send the commands to the kernel.

 

 

 

Icon--AD-black-48x48Icon--address-consumer-data-black-48x48Icon--appointment-black-48x48Icon--back-left-black-48x48Icon--calendar-black-48x48Icon--center-alignedIcon--Checkbox-checkIcon--clock-black-48x48Icon--close-black-48x48Icon--compare-black-48x48Icon--confirmation-black-48x48Icon--dealer-details-black-48x48Icon--delete-black-48x48Icon--delivery-black-48x48Icon--down-black-48x48Icon--download-black-48x48Ic-OverlayAlertIcon--externallink-black-48x48Icon-Filledforward-right_adjustedIcon--grid-view-black-48x48IC_gd_Check-Circle170821_Icons_Community170823_Bosch_Icons170823_Bosch_Icons170821_Icons_CommunityIC-logout170821_Icons_Community170825_Bosch_Icons170821_Icons_CommunityIC-shopping-cart2170821_Icons_CommunityIC-upIC_UserIcon--imageIcon--info-i-black-48x48Icon--left-alignedIcon--Less-minimize-black-48x48Icon-FilledIcon--List-Check-grennIcon--List-Check-blackIcon--List-Cross-blackIcon--list-view-mobile-black-48x48Icon--list-view-black-48x48Icon--More-Maximize-black-48x48Icon--my-product-black-48x48Icon--newsletter-black-48x48Icon--payment-black-48x48Icon--print-black-48x48Icon--promotion-black-48x48Icon--registration-black-48x48Icon--Reset-black-48x48Icon--right-alignedshare-circle1Icon--share-black-48x48Icon--shopping-bag-black-48x48Icon-shopping-cartIcon--start-play-black-48x48Icon--store-locator-black-48x48Ic-OverlayAlertIcon--summary-black-48x48tumblrIcon-FilledvineIc-OverlayAlertwhishlist