PLC Programming Best Practices [closed] - plc

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I have recently inherited a PLC project. We are using Automation Direct PLCs and using the C-more software for writing ladder logic.
C-more allows me to add rungs for "Execute on every scan", "Execute when called", etc.
It also allows me to break out separate sections under each of these headings to attempt some organization.
Are there some agreed upon best practices for structuring ladder logic programs? I'm trying to bring some sanity to the development process.

Document as you go. Logic, elements, memory map, etc. Document for "the other person", even if that person is YOU. PLCs and their programs tend to have a LONG life, so you will be glad 1 year, 5 years or even 20 years down the road when you have to tweak/debug that PLC. You'll be glad you explained things in a little more detail by documenting it for "the other person".
Do NOT wait until "the end" to document. Yes, that implies that you need to keep the documentation up-to-date.

There are no established norms in the PLC programming realm, I've been developing, commissioning, maintaining (and reverse-engineering) PLC programs for 26 years. Many organizations develop in-house standards, but there are no accepted industry-wide standards. However, a method I gleaned from an old pro dictates placing decision-making rungs first (evaluating conditions and setting flags), making control decisions in the next segment, turning outputs on/off in the next section, and monitoring performance/upset conditions in the last.
It's based on how older machines evaluated I/O and handled ladder execution. The advent of ladder 'sub-routines' has helped enormously; I generally treat each motor as a 'sub-system' element and assign its' own sub-routine.
Hope this helps!

Related

Master thesis on developping Twincat3 driver [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 1 year ago.
Improve this question
If there is any PLC programmer or Twincat3 user out there. I would like to write my master thesis on Twincat3 in a company. Basically, They have different kinds of the Test bench, and they want someone to develop drivers for them. I have no experience with PLC or C++ or IEC61131 languages. Is it possible to learn any of these in 3 months, and then start writing the thesis? I have three months of Internship time before starting. I am having a bit of doubt. Even though it is daunting as an Electrical engineering student, I have no other options.
I thank you in Advance.
Also, The test benches are mainly Powerelectronics or Electrical machine test bench. I believe I need to automate the test processes in twincat3.
Best Regards
Good choice with TwinCAT 3. TwinCAT 3 is very capable, and quite easy to learn (of course dependent on your background, but generally a good platform to work on).
All I can support you with is a link to a TwinCAT 3 tutorial that I've created that is free of charge (available on YouTube):
https://www.youtube.com/playlist?list=PLimaF0nZKYHz3I3kFP4myaAYjmYk1SowO
There are also some other resources available both on YouTube and on the website. I've created a set of links here to help you find all the resources you might need.
To answer your question I would say it depends. Three months is not much time, especially considering you probably have a lot of other things that need to go in there (doing studies, writing the thesis, implementation, conclusions etc). It depends on the complexity of your project (it's not very specific what "writing drivers for them" means). If it's a simple project (including a very basic set of I/Os) it might be do-able. If it's anything more complex (like needing to add a front-end, doing motion control and maybe even safety) then it's most likely going to be hard to finish it in three months.
But again, I think more details on what you want to achieve is necessary.

ItextSharp implementation across load balancer [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 3 years ago.
Improve this question
We're evaluating ITextSharp (now known as IText) for producing pdf documents. This will be used in our websites which will be published across a load-balanced solution amongst several servers.
According to Itext, this will require a production license per server (we're not open-source) in our load balanced configuration, as well as uat and developer licenses. This is obviously a considerable investment.
Could anyone recommend any alternatives to reduce the costs?
Also, is there a pattern we could adopt to minimise the migration effort of the existing website prototype if we were to use another product?
You could change your architecture a bit and have a dedicated PDF generation server. You'd then need to boil your requests down to something that could be sent between the servers. Depending on your goals, that could be something relatively simple, such as a user ID and a report name, or complex (text layout, that image there).
As far as distancing yourself from the commercial iText, there are two options.
1) Use the older MPL iTextSharp. It won't have all the latest features and bugfixes, but it's hard to beat the price.
2) The "wrapper" design pattern. Build a relatively generic interface, and have your current implementation of that interface sit atop iText. If you later need to swap it out, you're rebuilding the glue code, not your whole app.

What is the relation between business processes, workflows and activities? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 3 years ago.
Improve this question
I googled the above question in many forms and I could not find any comprehensible answer. Can someone give a real life example that explains the difference between a business process and a workflow ? and how each one is connected to activities.
This diagram was supposed to help but to be honest, it confused me even more.
Questions like this aren't the core purpose of Stack Overflow, so probably you'll get a few flags. But I'll try to give a short answer.
Like many other notions in computing, these two terms, business process and workflow, aren't precisely defined, at least not in a way that is generally understood and accepted. So each author, tool vendor, and the like, use them at their pleasure. For most practical cases, they are interchangeable. BPMN, for example, has "business process" in its name, but many "workflow" engines do nothing else than implement BPMN.
A diagram like the one you got isn't meaningful without a clear explanation of the meaning of its constructs. That's the duty of its author and can't be done by you or me without knowing his intentions.
If anything, the term "workflow" could be more specific than "business process". The workflow means the concrete sequence of actions, like "customer fills order, then vendor calculates delivery data, then warehouse personell fetches products,...". Business process can, depending on the context, also be used for more abstract ideas, like "product design, customer acquisition, order processing" that are not directly related in the everyday work organization.

What skills, programs, etc. are needed to create an OS from scratch? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 9 years ago.
Improve this question
The title explains it. What computer skills, programs, et cetera are needed to make an operating system? I know I am a long way away in terms of skills to do this but I want to know what I should be aiming to learn to accomplish this goal of mine.
Start with a BS in Computer Science. Then maybe go for a Master's degree. Go heavy on the math.
Generally you need a low level language that you can compile to binary. A shop near me, Green Hills Software makes compilers and is located next to an excellent school. You could look into interning with them.
There are some great books in your area of study too.
You can buy simple chips online and write code for them. I know someone who built little robots in his garage from parts online. He would design super simple motherboards and have them built in China, write the code, and solder wheels, wings, and sensors on. He sold one of his models to NASA.
I hope you do it!

Undergraduate project related to High Performance Computing or similar fields [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 9 years ago.
Improve this question
I am looking for ideas for my undergraduate project and I quite like the area of High Performance Computing , has got a lot of scope for research . Are there any ideas / already existing open source projects worth looking at ?
One hot field right now is in the area of algorithmic trading. You can sign up for $3000 (if you're under 21 -- it's $10k for over 21) at InteractiveBrokers.com and they will give you a free paper trading account (which is fake money traded using realtime data) of $10,000,000. They have API's in C#, C++, VB, Java and reasonable support... You could write your own stock pair trading algorithm. They have good documentation on how to get started.
You can scale this as high as you want, also a lot of people do high frequency trading which requires hpc and in-depth knowledge of Unix and C++.
Worth looking into, my 2 cents.
Perhaps massively parallel processing? Libraries like Cuda, OpenCL, and DirectCompute are just blossoming, and have a high likelihood of becoming commonplace. In my company, we are researching uses for OpenCL, and we're finding that it has the potential to revolutionize our industry.
Just a thought.
I would suggest looking at Sandia National Labs's SST (The Structural Simulation Toolkit). Its a highly parallel simulator framework used for HPC. It uses and incorporates other simulators from academia and industry. For instance, it currently integrates GEM5, QSim, MacSim, DRAMSim, Merlin, Portals, DRAMSim2, Iris, etc. Moreover, it is open source so you can contribute to the development.
You could work on integrating other academia components into SST, improve the interface of one of the components with SST, or just improve of the components themselves.