AR Sim Drive Simulation in AS6 with Torque Feedback

Hello there,

I am currently playing around with the simulating capabilitys of AR Sim as part of writing a bachelors thesis on drivetrain simulation. Right now i have a simple setup of one acopos beeing connected to a single motor. My next step would be to introduce simple loads while tracing speed, power and torque. From what i have gathered from my reasearch and testing, torque and power are either positive or negative infinity when i have the one mass load model configured on the Acopos.

I have limited Automation Studio Experience and i am completly new to simulating with AR Sim althought i have spend a couple of days tinkering with getting my first simulation to run without immediately running into a drive error. Mapp Cockpit also already works for me. Im either getting the same readings i am with tracing in AS or straight up errors. (Traces in mapp cockpit are marked with a red exclimation mark)

I believe that for actual torque readings i have to implement additional function blocks. From my reasearch i have gathered additional librarys are in need for this. One of those library would be MTMpcSiso, that is sadly still in development as far as i can tell. This entry supports this Can't find MTMpcSiso for Automation Studio 6 .

I would really appreciate if anyone had any good information on a basic setup, or a simple project with a working simulation like this one from Loupe in AS 4 https://www.youtube.com/watch?v=v-ZJCO9ORd8&t=5s

I am aware of both Acopos for Simulink and B&R Target for Simulink librarys. Licenses are already in the work. In the meantime i want to find out as much as i can about the simulating capabilitys within AR SIM.

Appreciate every bid of help ! Thanks in Advance
-Malte

To add some more context here is what im using right now.

PROGRAM _INIT

  AxisParameters.Position := 100.0;
  AxisParameters.Velocity := 3000.0;
  AxisParameters.Acceleration := 500.0;
  AxisParameters.Deceleration := 500.0;
  
  (* ParID 277 -> Torque *)
  parReadCfg[0].ParID := 277;
  parReadCfg[0].VariableAddress := ADR(gPar_ActualTorque);
  parReadCfg[0].DataType := mcACPAX_PARTYPE_REAL;
  parReadCfg[0].RefreshMode := mcACPAX_CYCLIC_MULTIPLEXED;
  
  (* ParID 278 -> Power *)
  parReadCfg[1].ParID := 278;
  parReadCfg[1].VariableAddress := ADR(gPar_ActualPower);
  parReadCfg[1].DataType := mcACPAX_PARTYPE_REAL;
  parReadCfg[1].RefreshMode := mcACPAX_CYCLIC_MULTIPLEXED;
  
  MpAxisBasic_0.MpLink := ADR(Simulated_Axis);
  MpAxisBasic_0.Parameters := ADR(AxisParameters);
  
  MpAxisBasic_0.Enable := TRUE;

END_PROGRAM

PROGRAM _CYCLIC

  MpAxisBasic_0();
  
  fbCycParRead.Axis := ADR(Simulated_Axis);
  fbCycParRead.DataAddress := ADR(parReadCfg);
  fbCycParRead.NumberOfParIDs := 2;
  fbCycParRead.Mode := mcACPAX_CYCLIC_PARID_READ;
  fbCycParRead.Enable := gParReadEnable;
  fbCycParRead();
  
  gParReadError := fbCycParRead.Error;

END_PROGRAM

PROGRAM _EXIT

END_PROGRAM

The 1:1 replacements of the ACP10 MC_BR_Read and write Sim etc are the ‘MC_BR_RdLoadSimTorque_AcpAx’ , ‘MC_BR_RdLoadSimInputData_AcpAx’ , ‘MC_BR_WrLoadSimTorque_AcpAx’ , ‘MC_BR_WrLoadSimPosition_AcpAx’, ‘MC_BR_WrLoadSimTwoEncPos_AcpAx’ function blocks.

So the Sim fubs are the interface where your own implementation of load could be attached to.