<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Unrecoverable SoftMotion state after switch to PreOp</title><link href="https://forge.codesys.com/forge/talk/Motion/thread/b9034fc5ce/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Motion/thread/b9034fc5ce/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Motion/thread/b9034fc5ce/</id><updated>2025-10-23T14:37:39.091000Z</updated><subtitle>Recent posts to Unrecoverable SoftMotion state after switch to PreOp</subtitle><entry><title>Unrecoverable SoftMotion state after switch to PreOp</title><link href="https://forge.codesys.com/forge/talk/Motion/thread/b9034fc5ce/?limit=25#d1b2" rel="alternate"/><published>2025-10-23T14:37:39.091000Z</published><updated>2025-10-23T14:37:39.091000Z</updated><author><name>imdatatas</name><uri>https://forge.codesys.com/u/imdatatas/</uri></author><id>https://forge.codesys.com5cd791e56bc91d8a1c862bfea214af4b0912d8f7</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Dear &lt;a class="user-mention" href="/u/alimans/profile/"&gt;@alimans&lt;/a&gt;, &lt;/p&gt;
&lt;p&gt;Additionally, As far as I know since starting from Softmotion V4.18.0.0 automatic restart behaviour for an axis has been changed for this issue. See below explanation from release notes.&lt;/p&gt;
&lt;p&gt;"With CODESYS SoftMotion 4.18.0.0, the behavior of SoftMotion axes after a loss of communication to the servo drive has changed. Now, an automatic reinitialization is performed as soon as the communication is established again. Before, an explicit call to SMC3_ReinitDrive had to be performed. An example for a loss of communication is that the cable to one of the drives is unplugged." &lt;/p&gt;
&lt;p&gt;Regards,&lt;br/&gt;
imdatatas&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Unrecoverable SoftMotion state after switch to PreOp</title><link href="https://forge.codesys.com/forge/talk/Motion/thread/b9034fc5ce/?limit=25#e51b" rel="alternate"/><published>2025-10-23T12:07:07.237000Z</published><updated>2025-10-23T12:07:07.237000Z</updated><author><name>alimans</name><uri>https://forge.codesys.com/u/alimans/</uri></author><id>https://forge.codesys.com201806d190f1a354df9ce49aadf76bf6102ee19a</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;For anyone still experiencing this issue, here’s how I managed to solve it:&lt;/p&gt;
&lt;p&gt;Symptoms:&lt;br/&gt;
    1.      Sometimes, on the first start of CODESYS Runtime, the modules fail to run.&lt;br/&gt;
    2.      After disconnecting and reconnecting the communication cable, the drive does not start again.&lt;br/&gt;
    3.      MC_Reset cannot clear the fault.&lt;/p&gt;
&lt;p&gt;Solution (what worked for me):&lt;br/&gt;
    1.      Check the axis communication using the &lt;code&gt;SMC_CheckAxisCommunication&lt;/code&gt; function block (FB).&lt;br/&gt;
    2.      If &lt;code&gt;CheckAxisCommunication.eComState&lt;/code&gt; of the axis is equal to or higher than &lt;code&gt;SMC_CommunicationState.SMC_COMSTATE_BASE_COM_INITIALIZATION&lt;/code&gt;, then&lt;br/&gt;
    3.      Use the &lt;code&gt;SMC3_ReinitDrive&lt;/code&gt; function block to reset the drive — and it works.&lt;/p&gt;
&lt;p&gt;For more information, refer to the official CODESYS documentation:&lt;br/&gt;
👉 &lt;a href="https://content.helpme-codesys.com/en/libs/SM3_Basic/Current/SM3_Basic/DriveInterface/AXIS_REF/SMC3_ReinitDrive.html" rel="nofollow"&gt;https://content.helpme-codesys.com/en/libs/SM3_Basic/Current/SM3_Basic/DriveInterface/AXIS_REF/SMC3_ReinitDrive.html&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Unrecoverable SoftMotion state after switch to PreOp</title><link href="https://forge.codesys.com/forge/talk/Motion/thread/b9034fc5ce/?limit=25#a8c0" rel="alternate"/><published>2025-10-23T03:55:16.199000Z</published><updated>2025-10-23T03:55:16.199000Z</updated><author><name>eschwellinger</name><uri>https://forge.codesys.com/u/eschwellinger/</uri></author><id>https://forge.codesys.comb8a11f390235cb9bf95b11a6655bdbdb3450f4aa</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;i would recommend to check the plc log..&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Unrecoverable SoftMotion state after switch to PreOp</title><link href="https://forge.codesys.com/forge/talk/Motion/thread/b9034fc5ce/?limit=25#0073" rel="alternate"/><published>2025-10-22T07:33:10.420000Z</published><updated>2025-10-22T07:33:10.420000Z</updated><author><name>alimans</name><uri>https://forge.codesys.com/u/alimans/</uri></author><id>https://forge.codesys.com73e6f6a8753b5279635e8757fbc046cbfd72da4f</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi Kim, Hi eschwellinger, how you could solve the problem? I am using Codesys V3.5.19.60 and I still have the same problem. It will work only after a warm/cold restart. &lt;br/&gt;
Thank you in advance for your kind help.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Unrecoverable SoftMotion state after switch to PreOp</title><link href="https://forge.codesys.com/forge/talk/Motion/thread/b9034fc5ce/?limit=25#d8df" rel="alternate"/><published>2024-11-15T09:58:48.768000Z</published><updated>2024-11-15T09:58:48.768000Z</updated><author><name>masterofplc</name><uri>https://forge.codesys.com/u/masterofplc/</uri></author><id>https://forge.codesys.com2915af05065ebd584d663d794b1fe3bb7ef83a79</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi.&lt;br/&gt;
i have the same problem.&lt;br/&gt;
Thank you&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Unrecoverable SoftMotion state after switch to PreOp</title><link href="https://forge.codesys.com/forge/talk/Motion/thread/b9034fc5ce/?limit=25#962e" rel="alternate"/><published>2020-02-27T18:35:46.673000Z</published><updated>2020-02-27T18:35:46.673000Z</updated><author><name>Kim</name><uri>https://forge.codesys.com/u/kim/</uri></author><id>https://forge.codesys.comba11ddd358cc876bd5027e5da9c90dd6b9aeebe3</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Update:&lt;br/&gt;
This seems to be working in v3.5.6.10 so most probably no longer an issue.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Unrecoverable SoftMotion state after switch to PreOp</title><link href="https://forge.codesys.com/forge/talk/Motion/thread/b9034fc5ce/?limit=25#ae53" rel="alternate"/><published>2020-02-27T18:35:45.522000Z</published><updated>2020-02-27T18:35:45.522000Z</updated><author><name>eschwellinger</name><uri>https://forge.codesys.com/u/eschwellinger/</uri></author><id>https://forge.codesys.com380367fd2f0bc0974cc4374ba415c52e9ae63864</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi Kim,&lt;br/&gt;
I've send you an email accoring this.&lt;/p&gt;
&lt;p&gt;BR&lt;br/&gt;
Edwin&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Unrecoverable SoftMotion state after switch to PreOp</title><link href="https://forge.codesys.com/forge/talk/Motion/thread/b9034fc5ce/?limit=25#3af0" rel="alternate"/><published>2020-02-27T18:35:42.299000Z</published><updated>2020-02-27T18:35:42.299000Z</updated><author><name>Kim</name><uri>https://forge.codesys.com/u/kim/</uri></author><id>https://forge.codesys.com37a93f328a8b800354094953b622dcd5454b300e</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Running v3.5.3.30 in our iX TxB SoftMotion terminals.&lt;/p&gt;
&lt;p&gt;In order to execute a special function in our servo drives, we need to leave Operational mode and go to PreOperational mode. I do this the usual way (using a pointer to the slave):&lt;br/&gt;
pSlave^.SetOpMode(ETC_SLAVE_STATE.ETC_SLAVE_PREOPERATIONAL);&lt;/p&gt;
&lt;p&gt;The slave wState goes to PreOp and the SoftMotion axis wCommunicationState becomes 1100 (ETC device is no longer in mode Operational). So far it seeems ok.&lt;/p&gt;
&lt;p&gt;I carry out my special function by doing a couple of SDO parameter read/writes, when I'm done I go back to Operational state using a sequence where I command the drive to Init, then PreOp, then SafeOp, then Op and the drive wState becomes ETC_SLAVE_OPERATIONAL, so far so good.&lt;/p&gt;
&lt;p&gt;But.... the SoftMotion axis is still stuck in wCommunicationState 1100 no matter what I do.&lt;br/&gt;
Neither MC_Reset or SMC3_ReinitDrive helps.&lt;br/&gt;
In pure desperation, I even tried doing a softreset of the EtherCAT_Master using:&lt;br/&gt;
g_pFirstMaster^.xRestart:=TRUE;&lt;br/&gt;
g_pFirstMaster^();&lt;br/&gt;
g_pFirstMaster^.xRestart:=FALSE;&lt;br/&gt;
Didn't help either, for sure the EtherCat restarts but the Softmotion axis is still stuck in 1100 and MC_Reset/SMC3_ReInitDrive still doesn't help.&lt;/p&gt;
&lt;p&gt;The only thing that fixes this is a warm/cold start, which ofc isn't acceptable.&lt;/p&gt;
&lt;p&gt;I hope I'm doing it wrong... Should I switch state in another way?&lt;br/&gt;
What to do in order to obtain a correct behaviour?&lt;/p&gt;
&lt;p&gt;Regards,&lt;br/&gt;
Kim Hansen&lt;br/&gt;
Beijer Electronics Automation AB&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>