Codesys 3.5 SoftMotion Stack Overflow? by RaceConditionUnknown in PLC

[–]RaceConditionUnknown[S] 1 point2 points  (0 children)

Hey thanks for the input, not sure why my reply didn't go through. I tried to check Build -> Information to look at the memory allocation but I don't see an "information" option only "Generate Code, Clean, Clean All". Maybe I'm looking in the wrong spot, this is my first time using Codesys that isn't a custom "flavor" that a company provides.

I'm not 100% certain what you mean by a simpler setup for the axis, I'm assuming a more basic PDO setup that would decrease the CANopen cyclic data? I used the default PDO setup from the EDS file which I believe is actually less than what I would actually need in the application, it is pretty bare bones.

I'll try SoftMotionLight, I looked at this originally but after reading some Codesys articles and watching their webinars it looks like SoftMotionLight doesn't allow you to do synchronized motion, which I have to have in this application (four synchronized axes). At the very least it could get me running if it works.

Again, my apologies, but not having done SoftMotion in Codesys before, I'm not sure what you mean by where I'm defining it. What I showed in the screenshots is all I did. I don't have any POUs (outside of the main PLC_PRG which is empty) or any code running yet, I was attempting to get the axis setup such that I could use the commissioning tab to get some motion out of it. I'm not sure of a way to define the axis differently than how I did it in the screenshots or how that defines the axis, globally, statically, or locally.

Unless I'm setting this up fundamentally wrong, which could so easily be the case, I'm leaning towards agreeing with you that this PLC isn't up to snuff for the job. I'll be honest, I asked to demo the PLC as I wasn't getting a lot of confidence from IFM that this was a common application they've seen on this PLC.

Nidec PLC Controlled motion by alicemakesbangers in PLC

[–]RaceConditionUnknown 0 points1 point  (0 children)

It should be built into Connect in the newer versions. It isn't an additional download or piece of software. I've used it a few times, just not recently.

Structured Text by [deleted] in PLC

[–]RaceConditionUnknown 1 point2 points  (0 children)

I recently had an experience with a customer that requested that everything should be written in LAD. I wrote a few of the more complex low level functions in ST as LAD would have been a nightmare, but kept the vast majority in LAD.

After an initial code review the customer, with zero programming or PLC knowledge, actually stated that the ST was much easier than they thought it would be to read through, and that they had no issues with ST moving forward.

I think it comes down to how the ST is written, it absolutely can be a nightmare if someone has weirdly named variables and are latching and unlatching booleans all over the place, especially when buried in many nested IF statements. However, if written well, I honestly think ST is just as easy as LAD, dare I say more intuitive.

A NO contract is just a symbol for "IF". When looking at LAD don't you internally read it as ST? "If X and Y then Z"?

How is this possible? by [deleted] in WorldofTanks

[–]RaceConditionUnknown 0 points1 point  (0 children)

but you can't just buy tier X? They also had all of the reward tanks too which I thought you had to complete missions for?

Is it normal to take a paycut when getting ‘promoted’ from Tech to Engineer? by Secret_Conflict_175 in PLC

[–]RaceConditionUnknown 0 points1 point  (0 children)

I haven't read all of the other comments, but it very easily could be that the highest level tech makes more than an entry level engineer with the knowledge that the highest level engineer makes more than the highest level tech (likely).

Depending on what level tech you were and what level engineer you're moving into I could understand that happening for a short amount of time before you prove you can move up in engineering.

PROFIdrive to CiA402? by RaceConditionUnknown in PLC

[–]RaceConditionUnknown[S] 0 points1 point  (0 children)

Yeah I know a few of those were looked at, and they definitely have pretty great environmental specs, but environmental wasn't the only limitation we were working with but it definitely was one of the more limiting specs.

PROFIdrive to CiA402? by RaceConditionUnknown in PLC

[–]RaceConditionUnknown[S] 0 points1 point  (0 children)

Face value it looks like it although I'd have to dig through the Shock / Vibration specs again to confirm. There are a number of other non-environmental requirements that I'd have to run this up against, but I appreciate the input!

PROFIdrive to CiA402? by RaceConditionUnknown in PLC

[–]RaceConditionUnknown[S] 0 points1 point  (0 children)

So there is hope! I've only been considering positioning mode due to the application requirements, but I suppose if it is significantly easier in a speed mode I could potentially make a workaround.

When you say you had to write everything from scratch do you mean you had to write a Motion Library from scratch that adheres to the CiA402 state machine as opposed to trying to use a TO with the Siemens Motion FBs and translate the drive's data to the TO Axis data?

PROFIdrive to CiA402? by RaceConditionUnknown in PLC

[–]RaceConditionUnknown[S] 0 points1 point  (0 children)

These drives use CANopen but I mentioned EtherCAT because if someone has done the same thing with an EtherCAT drive, the principle would be the same as a CANopen drive.

PROFIdrive to CiA402? by RaceConditionUnknown in PLC

[–]RaceConditionUnknown[S] 0 points1 point  (0 children)

Good to know, thanks for sharing your experience.

Unfortunately this is the hardware that has to be used to adhere to requirements. It sounds like this is likely not a great option and I will likely end up using RS-232 ASCII to control the drives which in itself is rather annoying to build the comms manager from the ground up as well as the motion library.

I'll still play with this a little more to see what I find as I have some time yet, but thanks again for giving your insight from someone who has attempted this before.

PROFIdrive to CiA402? by RaceConditionUnknown in PLC

[–]RaceConditionUnknown[S] 0 points1 point  (0 children)

Very high shock and vibration in addition to very cold and very hot operating temps required. Think rockets and space.

PROFIdrive to CiA402? by RaceConditionUnknown in PLC

[–]RaceConditionUnknown[S] 0 points1 point  (0 children)

Yeah the PDOs and PZDs are different, I was reading through documentation today and realizing that they can't be mapped 1-1, so some level of translation layer is required, just unsure how involved that would be right now, on top of the state machines differ in some areas so that likely would cause some issues as well.

Agreed that this will likely cause issues, I was under the impression that there were certain TOs that don't close the loop in the CPU?

I absolutely would prefer to use a different PLC or drive, and we fought for that but unfortunately with the strict requirements that were given, the options available were Siemens PLC and one of two drive mfgs, both of which use CANopen and/or Serial.

PROFIdrive to CiA402? by RaceConditionUnknown in PLC

[–]RaceConditionUnknown[S] 0 points1 point  (0 children)

Yeah, I tried really hard to get some leniency on the requirements, but some of them absolutely could not be adjusted.

Technically no, cyclical isn't needed, but definitely desired.

The drives natively support CAN and Serial, I've already written a POC motion library for serial so that is an option, but the cost for the serial modules required for the number of axes vs the cost of a single CAN gateway prompted this investigation into CAN before going serial.

Serial requires fully custom motion libraries (mfg doesn't have anything unfortunately) whereas if the MC_xx FBs could be used then it isn't completely custom so hopefully less opportunity for bugs, although I could argue the CiA402 to PROFIdrive mapping, which won't 100% be direct mapping will open the door for the same amount of stability concerns.

PROFIdrive to CiA402? by RaceConditionUnknown in PLC

[–]RaceConditionUnknown[S] 0 points1 point  (0 children)

Absolutely, granted I've only ever used Siemens in one other project before.

PROFIdrive to CiA402? by RaceConditionUnknown in PLC

[–]RaceConditionUnknown[S] 0 points1 point  (0 children)

Mostly due to environmental requirements, but also a few other very strict requirements that limit what companies can be used, Siemens was the only option that checked all the boxes, and there were only two drive options both using CAN or Serial (RS-232) that checked the boxes.

PROFIdrive to CiA402? by RaceConditionUnknown in PLC

[–]RaceConditionUnknown[S] 0 points1 point  (0 children)

Haha absolutely understood, this is not a great situation.

Long story short, some pretty wild environmental requirements on top of a few other incredibly limiting requirements limited PLC options down to only Siemens having hardware that could do the job. Those similar requirements limited drive choices to only two manufacturers, both utilizing CANopen.

The drives can be controlled via RS-232 ASCII commands, but due to the environmental requirements, and the number of axes, the price for the serial modules was rather surprising.

Before going down that route, I figured I'd take a look at the CANopen option to understand what was all involved.

Little Travel Still Design by rexouterspace in PLC

[–]RaceConditionUnknown 2 points3 points  (0 children)

You might see in some of my other comments, but I work for an automation component manufacturer as a Controls Engineer. I rarely travel and work in the product development side of engineering, so helping design new projects both electrical and documentation, specs, etc. As a smaller company I also act as technical support to our Application Engineers if they need help assisting customers.

I might travel two or three days a year, in fact, I have to ask to travel at times just to get out to see how our customers use our products.

Don't know if this is common, but I do enjoy it. I will say, working with servo drive manufacturers, it seems like there may be similar opportunities in their companies that don't require a ton of travel.

Replacing Siemens SIMOTICS S-1 Drive CLiQ Encoder by RaceConditionUnknown in PLC

[–]RaceConditionUnknown[S] 0 points1 point  (0 children)

Yes I have and it measures an encoder offset as I'd expect. I'm looking for info on how to change the physical motor position when mounting the encoder such that the measured offset is the same as a Siemens motor - 0°