This is normal and correct since in CoDeSys static addressing of variables uses the IEC method. A LONG tag has the size of 8 bytes, so %ML0 coincides with %MB0 ... %MB7; %ML1000 with %MB8000 ... %MB8007. (Similar reason for word and other formats). Also the reason the compiler won't let you map the structure to a %MW depends on the fact that the individual base elements are manipulated to 64 bits regardless of the smaller size. That said, it makes me strange that you cannot write a parser without...
This is normal and correct since in CoDeSys static addressing of variables uses the IEC method. A double word (long) has the size of 8 bytes, so %ML0 coincides with %MB0 ... %MB7; %ML1000 with %MB8000 ... %MB8007. (Similar reason for word and other formats). Also the reason the compiler won't let you map the structure to a %MW depends on the fact that the individual base elements are manipulated to 32 bits regardless of the smaller size. That said, it makes me strange that you cannot write a parser...
... you say 1.6 Nm is only enough torque to unscrew a loose bottle cap ... This the the value of torque: from 1,2 Nm to 1,4 Nm that is cosidered acceptable for an old people. 1,6 Nm the torque considered acceptable for general use caps.
In general, drives have parameter sets to adjust behaviour in such cases: position recovery, adaptation with resistant torque, out-of-position window failure, etc. (Much depends on the type of configuration set for the axis: positioner, speed controller, torque controller, etc.). I have used that type of drive very little, in only two cases and a long time ago. To tell you what is normal is impossible. I know by reputation they are very simple objects, without too many pretensions and adjustments...
With this kind of motor nominal tourque I can belive that it can be moved very easy. 1,6 Nm is, for example, the torque required for unscrew a small loose cap from a bottle.
Reading between the lines of what you did not specify, it therefore seems to appear that in the programme, at the end of the movement order, there is an order to remove power and switch off the pulse modulation. if this is the case, it is obvious that the motor then remains free. If the position is to be maintained at the end of the movement, the motor current modulator, which on the PLC side is controlled via the MC_Power method, must not be interrupted. Another possibility is that in the motor...
Reading between the lines of what you did not specify, it therefore seems to appear that in the programme, at the end of the movement order, there is an order to remove power and switch off the pulse modulation. if this is the case, it is obvious that the motor then remains free. If the position is to be maintained at the end of the movement, the motor current modulator, which on the PLC side is controlled via the MC_Power method, must not be interrupted.
In a recent project with SoftMotion 4.15.0.0, where I integrated two SD drives from CMZ (from catalogue EDS and not imported), on CANopen bus, I found that the SoftMotion MC_Reset function does not reset the drive faults. Even if the drive is in fault, either on the device or on the drive at the CoDeSys level, the function does not reset, instead reporting the error code: no error to reset. Finally, I had to connect the reset bit of the ControlWord directly to a tag in my program. Something I never...
Thank you for your interest. Your answers are in line with what I knew, so at least it comforts me that I did not misinterpret the situation. However, I don't have an exact match as, for this project over the past few days I have: 1) I have gone back to leaving the various FBs of the motion always called, all of them, and in the state machine I use a boolean to activate the various useful Execute. (But in the future I want to go back and try the programming technique with which I wanted to develop...
Yes, this point is part of my misunderstanding. Why, after the execution ot the motion FBs is set to FALSE and exsecuted at lest one time, it must be continuosly called, even if the motion control it's take from another subsequent instruction. This is what I really don't undertand, but what in fact it's happening. For example, in case of stopping a MoveVelocity FB, then Halting the motion by the related FB, the axis at spot goes into error. If there was bad trigger management, the various instructions...
Maybe the example posted it's not so clear, but this is not the problem. The execution of every motion methods is well triggered.
Yes, this is the error the sometimes show up. What make me crazy is the fact that it happens randomly and not each times. I know very well where the problem is, in wich one program row it's located. For each actions of the state machine I have all events recorded with log on text file. it is not problematic for me to find the application point of the fault, but I need to understand why occasionally and for no apparent reason, switching the state machine and thus changing the motion FB, sends the...
Hello everyone, I have a very simple program for the process, but it's driving me crazy and I can't see the problems I'm left with: Short topological description: Dual Core Berghof controller with softmotion runtime version 3.5.19.30; Two axes with servodrive on canopen bus, clocked distributed from master; Ethercat I/O node; 2 ms ethercat task, 2 ms canopen bus cycle time; I/O objects of the canopen master and canopen drives connected to the ethercat task cycle; Problem 1: Two separate programs...