Change CodeSys Default version
CODESYS Forge
talk
(Thread)
Change CodeSys Default version
Last updated: 2022-07-20
Raspberry OPCUA change namespace
CODESYS Forge
talk
(Thread)
Raspberry OPCUA change namespace
Last updated: 2019-06-11
Writing variable 'On change'
CODESYS Forge
talk
(Thread)
Writing variable 'On change'
Last updated: 2019-05-01
SummerTime change.
CODESYS Forge
talk
(Thread)
SummerTime change.
Last updated: 2015-07-02
Change Log History
CODESYS Forge
talk
(Thread)
Change Log History
Last updated: 2022-12-16
Change Ethernet Address
CODESYS Forge
talk
(Thread)
Change Ethernet Address
Last updated: 2016-05-18
Generic Change Log
CODESYS Forge
talk
(Thread)
Generic Change Log
Last updated: 2019-03-01
Detect Online change / Download
CODESYS Forge
talk
(Thread)
Detect Online change / Download
Last updated: 2020-06-03
Change Visualisation to previous
CODESYS Forge
talk
(Thread)
Change Visualisation to previous
Last updated: 2021-12-21
Shown Visualisation Change Latency
CODESYS Forge
talk
(Thread)
Shown Visualisation Change Latency
Last updated: 2016-08-11
Online change problem
CODESYS Forge
talk
(Thread)
Online change problem
Last updated: 2022-02-08
change Default settings Codesys
CODESYS Forge
talk
(Thread)
change Default settings Codesys
Last updated: 2016-06-18
Language change
CODESYS Forge
talk
(Thread)
Language change
Last updated: 2022-09-09
Change Velcoity of MC_MoveAbsolute
CODESYS Forge
talk
(Thread)
Change Velcoity of MC_MoveAbsolute
Last updated: 2018-06-28
change package properties
CODESYS Forge
talk
(Thread)
change package properties
Last updated: 2018-12-13
online change error,
CODESYS Forge
talk
(Thread)
online change error,
Last updated: 2012-11-14
Change email Address
CODESYS Forge
talk
(Thread)
Change email Address
Last updated: 2012-12-14
Change Visualisation Location
CODESYS Forge
talk
(Thread)
Change Visualisation Location
Last updated: 2016-03-23
How to change bHiresMode
CODESYS Forge
talk
(Thread)
How to change bHiresMode
Last updated: 2024-03-12
Timer change online
CODESYS Forge
talk
(Thread)
Timer change online
Last updated: 2024-08-24
Persistent / Programme change
CODESYS Forge
talk
(Thread)
Persistent / Programme change
Last updated: 2024-09-10
Change remote targetvisu updaterate?
CODESYS Forge
talk
(Thread)
Change remote targetvisu updaterate?
Last updated: 2024-10-02
Change between visualizations
CODESYS Forge
talk
(Thread)
Change between visualizations
Last updated: 2024-10-07
Post by trycyclepower on How to set unit in Axis
CODESYS Forge
talk
(Post)
I am very new to Motion in Codesys. I have linear axis and would like to setup as mm, I want to move axis and control axis in mm, mm/s. How do I do that? I know my electronic gearing is 200000.
Last updated: 2024-08-29
Post by mubeta on Some 'pathetic' errors in SoftMotion program
CODESYS Forge
talk
(Post)
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 each manage their own axis and drive, with separate state machines. A first axis moves primarily in velocity, except having to position itself absolutely at a predetermined point at the end of the job; the second axis, on the other hand, is a paper unwinder that changes, for each job cycle, from actions in absolute, relative, and cam displacement with the master axis. Well, the state machine of both axes was written in such a way as to call running the useful FB and change it on state change in this way: CASE i_stateMachine OF 0: o_Power(Enable := TRUE, bRegulatorOn := FALSE, bDriveStart := FALSE, Axis := o_PaperUnwinderAxis); o_MoveAbs(Execute := FALSE, Axis := o_PaperUnwinderAxis); o_MoveRel(Execute := FALSE, Axis := o_PaperUnwinderAxis); o_CamSelect(Execute := FALSE, Master := o_MachineAxis, Slave := o_PaperUnwinderAxis, CamTable := cam_PaperUnwinder); o_CamIn(Execute := FALSE, Master := MachineEncoder, Slave := o_PaperUnwinderAxis); o_CamOut(Execute := FALSE, Slave := o_PaperUnwinderAxis); o_SetPosition(Execute := FALSE, Axis := o_PaperUnwinderAxis); IF ... THEN i_StateMachine := 10; END_IF; 10: o_Power( Enable := TRUE, bRegulatorOn := TRUE, bDriveStart := TRUE, Axis := o_PaperUnwinderAxis ); IF o_Power.Status THEN i_StateMachine := 20; END_IF; 20: (* Avanzamento carta *) o_MoveAbs( Execute := TRUE, Position := o_Somewhere, Velocity := 25.0, Acceleration := 3666.7, Deceleration := 3666.7, Jerk := 48000.0, Direction := MC_DIRECTION.positive, Axis := o_PaperUnwinderAxis ); IF o_MoveAbs.Done THEN o_MoveAbs(Execute := FALSE, Axis := o_PaperUnwinderAxis); i_StateMachine := 30; END_IF 30: d_HomingPosition := ...; o_SetPosition( Execute := TRUE, Position := d_HomingPosition, Mode := FALSE, Axis := o_PaperUnwinderAxis ); (* ... *) IF o_SetPosition.Done = TRUE THEN o_SetPosition(Execute := FALSE, Axis := o_PaperUnwinderAxis ); o_LogServer.Append(sMessage := '...', lscClass := LOGSERVER_CLASS.ALWAYS, sdt := o_CommonsMgrData.systime.sdtLocal); i_StateMachine := 40; END_IF; 50: ... The code above is a sketchy example of what I wanted to write. But it gives me a spot problem: in some, the state change results in a drive error, which is unrecoverable except with a reinitialization via SM3_ReinitDrive(). Things are improved a little if in the program I always run the call of all softmotion blocks in this way: o_Power(Axis := o_PaperUnwinderAxis); o_Jog(Axis := o_PaperUnwinderAxis); o_Halt(Axis := o_PaperUnwinderAxis); o_MoveAbs(Axis := o_PaperUnwinderAxis); o_MoveRel(Axis := o_PaperUnwinderAxis); o_CamIn(Master := MachineEncoder, Slave := o_PaperUnwinderAxis); o_CamOut(Slave := o_PaperUnwinderAxis); If I don't execute all the calls of all the motion FBs used, when exchanging machine state often (but not always), the axis goes into error with event id THE_FB_WASNT_CALL... Done a little diagnostics it seems that the FBs return the bDone, before they are completely terminated. I tried doing the machine state exchange not with the bDone bit of the FBs, but with the 'standstill' state of the axis. It didn't seem to change anything. Problem 2: During the use SM3_ReinitDrive() I get the erro in the log: "NetID 0: SDO read error for object 16#607C..." Assuming that the device involved it's one of the two servodrive, (no others device are present in the network), I don't found any object 0x607C in the 'possible object list in/out' of the two drive, and I don't understand where this object can be listed. So any ideas and suggestions regarding these two issues will be very, very welcome. If you need the source project, I am willing to send it.
Last updated: 2024-07-17
To search for an exact phrase, put it in quotes. Example: "getting started docs"
To exclude a word or phrase, put a dash in front of it. Example: docs -help
To search on specific fields, use these field names instead of a general text search. You can group with AND
or OR
.