Chris Morley | 1 Mar 2008 21:09
Picon
Favicon

looking for input about classicladder


Greetings all:

I was in contact with Marc (classicladder's author) and he asked me what my wish list was for new development.
I added this to the Wikki (most of it Marc would not be interested in):

    *  Things I am considering:

       - The classicladder userspace program should check that the realtime module has loaded enough ladder
elements for the program requested.
         This should be fairly easy as classicladder already saves ladder element numbers with ladder programs.
         I keep thinking that the userspace program should load the realtime program this would simplify some
things-but break configs.
       - A button that loads a text reader that displays a description of a ladder program would be nice. It could
also have pages for basic info such as variable
         name and explanations of ladder elements-like a help screen I guess. I like self documenting programs.
       - We could automatically add all the variables (that were allocated by realtime ) into the symbols window
though this adds a lot of info to go though.
         Maybe just add the ones that are used in the current program? Could add radio button to show just one type of
variable at a time.
         Are auto-added symbol names useful (as like version 7.100, I found them ugly but a newbie might want them) ?
       - What ladder examples would users like to see ( I plan to make a two turret  tool changer program for my lathe)

Any comments would be helpful. I would like to hear from current users about what they/like don't like with
the current (EMC 2.1 +) version of Classicladder.
And If anyone has tried the trunk version lately....
Also I would like to know from users where the documentation is lacking/unclear.

Thanks
Chris Morley
(Continue reading)

Mario | 1 Mar 2008 22:11

Re: looking for input about classicladder

what you described inspired me... actually there should be - either external or internal - possibility to display the logical diagram graphically. (yes a large vector -based, or oldschool bitmap screen with all the gates and ogical functions with descriptions like logical block names and parameters displayed. The connecting lines shoud have arrows when the line is single way, and also possibly discerned by colors, for input pins, output pins  and internal; connections of different colors. Unconnected pins or inproperly connected pins and lines should also come with different color code. name of the lines could also be in green ove the line.)

With that, we could continue forward with the editor of the diagram, or even start with it.

Mitsubishi automation has a program like that for their ALPHA modules, but... it has a HUI od 1995-MS-DOS style, ewwww.
But anyways, do you want to see it? I could sent it to you so you can see the inspiration.


On 3/1/08, Chris Morley <chrisinnanaimo-PkbjNfxxIARBDgjK7y7TUQ@public.gmane.org> wrote:

Greetings all:

I was in contact with Marc (classicladder's author) and he asked me what my wish list was for new development.
I added this to the Wikki (most of it Marc would not be interested in):

    *  Things I am considering:

       - The classicladder userspace program should check that the realtime module has loaded enough ladder elements for the program requested.
         This should be fairly easy as classicladder already saves ladder element numbers with ladder programs.
         I keep thinking that the userspace program should load the realtime program this would simplify some things-but break configs.
       - A button that loads a text reader that displays a description of a ladder program would be nice. It could also have pages for basic info such as variable
         name and explanations of ladder elements-like a help screen I guess. I like self documenting programs.
       - We could automatically add all the variables (that were allocated by realtime ) into the symbols window though this adds a lot of info to go though.
         Maybe just add the ones that are used in the current program? Could add radio button to show just one type of variable at a time.
         Are auto-added symbol names useful (as like version 7.100, I found them ugly but a newbie might want them) ?
       - What ladder examples would users like to see ( I plan to make a two turret  tool changer program for my lathe)

Any comments would be helpful. I would like to hear from current users about what they/like don't like with the current (EMC 2.1 +) version of Classicladder.
And If anyone has tried the trunk version lately....
Also I would like to know from users where the documentation is lacking/unclear.

Thanks
Chris Morley

_________________________________________________________________


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Emc-developers mailing list
Emc-developers-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
https://lists.sourceforge.net/lists/listinfo/emc-developers

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Emc-developers mailing list
Emc-developers@...
https://lists.sourceforge.net/lists/listinfo/emc-developers
Chris Morley | 1 Mar 2008 22:51
Picon
Favicon

Re: input about classicladder/HAL gui display


Yes I would like to see it. 
I have no experience with any other ladder programs or devices.
I would like a GUI based editor for HAL as I am more visual oriented. I understand the need for powerful
command line interfaces but for most testing and less complicated  things I would much prefer point and
click as would newbies coming from Windows. What we are talking about , I think is a window IDE for HAL.
I can not build such a GUI program as I don't have the skills (I am slowly learning). I think the biggest
stumbling block is how do you represent such complex information clearly.
I toyed with the idea for Classicladder to display all current HAL signals, pins, modules and to be able to
set pins but though it would be convenient for me, Classicladder is for PLC programming not HAL
programming, though when one is creating a ladder program one has to program HAL at the same time.

> 
> With that, we could continue forward with the editor of the diagram, or even start with it.
> 
> Mitsubishi automation has a program like that for their ALPHA modules, but... it has a HUI od 1995-MS-DOS
style, ewwww.
> But anyways, do you want to see it? I could sent it to you so you can see the inspiration.
> 
>
Glad to hear the creative juices are flowing!!
_________________________________________________________________

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
Eric H. Johnson | 2 Mar 2008 02:55

Re: input about classicladder/HAL gui display

Chris,

I started doing some work in this area a while back (2006), but real work
got in the way and it fell by the wayside. It started with Classic Ladder
and simply wanting a user interface separate from the ladder executive, just
as a program loader is separate from the PLC. But with greater aspirations,
in the sense of being able to do HAL configurations as FBDs (function block
diagrams) or even enabling any of the other IEC 61131-3 "programming
languages" (see http://en.wikipedia.org/wiki/IEC_61131-3).

My thought was to use XML as the means of encapsulating (storing) any of
these languages, and I did a preliminary definition (dtd), included at the
bottom of this email. It should probably be converted to a schema, but I did
not really understand them at the time.

The XML would then be used to generate both the configuration (HAL) on the
EMC side, and to render the representation on the user interface side. The
user interface would then communicate with EMC over a socket interface. That
portion already basically exists in halrmt. Communicating over halrmt would
then "animate" any of the representations with the live component pin,
signal or parameter values. You can see this interface by adding the line:

loadusr halrmt

To one of the HAL files in your configuration. You can then use telnet to
communicate with it as follows:

On the same machine:

telnet localhost 5006

Just type 'help', and it will list the interface and syntax. To log in,
enter:

hello EMC <client> <version>

Where client is any string, but typically the network name of the client,
and version is 1.0. "EMC" is the password to enable the interface. The
interface also only allows a single session to be "enabled" to change values
at any one time. To become the enabled session, enter:

set enable EMCTOO

The rest you should be able to get from the help.

I also wrote a really crude program loader application to render and edit
ladder diagrams. It currently runs only on Windows, as I did not know any
visual design tools on Linux. For the prototype I used Borland Delphi
because there were issues with the Internet controls (indy) under Free
Pascal (http://www.freepascal.org/) / Lazarus
(http://www.lazarus.freepascal.org/). Delphi is Windows only, however Free
Pascal / Lazarus is multi-platform, including both windows and linux among
others.

If you are interested, I can send you what I have in an email.

Regards,
Eric

Yes I would like to see it. 
I have no experience with any other ladder programs or devices.
I would like a GUI based editor for HAL as I am more visual oriented. I
understand the need for powerful command line interfaces but for most
testing and less complicated  things I would much prefer point and click as
would newbies coming from Windows. What we are talking about , I think is a
window IDE for HAL.
I can not build such a GUI program as I don't have the skills (I am slowly
learning). I think the biggest stumbling block is how do you represent such
complex information clearly.
I toyed with the idea for Classicladder to display all current HAL signals,
pins, modules and to be able to set pins but though it would be convenient
for me, Classicladder is for PLC programming not HAL programming, though
when one is creating a ladder program one has to program HAL at the same
time.

IEC 61131-3 DTD follows
----------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!--
============================================================================
=
     HAL IEC 61131-3 compliant process control representation DTD 
     Version 0.7.0 (pre-alpha)

     Unpublished work.

     Copyright (c) 2006 Eric H. Johnson 
     All rights reserved.                      

     NOTICE: THIS IS A PRELIMINARY PROOF OF PRINCIPLE, AND IS SUBJECT TO
CHANGE.       
     IT IS NOT FOR USE IN PRODUCTION. ANY USE IS AT YOUR OWN RISK

============================================================================
=

     This definition is free; you can redistribute it and/or
     modify it under the terms of version 2.1 of the GNU General
     Public License as published by the Free Software Foundation.
     This file is distributed in the hope that it will be useful,
     but WITHOUT ANY WARRANTY; without even the implied warranty of
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.

     You should have received a copy of the GNU General Public
     License along with this library; if not, write to the Free Software
     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111 USA

     THE AUTHORS OF THIS LIBRARY ACCEPT ABSOLUTELY NO LIABILITY FOR
     ANY HARM OR LOSS RESULTING FROM ITS USE.  IT IS _EXTREMELY_ UNWISE
     TO RELY ON SOFTWARE ALONE FOR SAFETY.  Any machinery capable of
     harming persons must have provisions for completely removing power
     from all motors, etc, before persons enter any danger area.  All
     machinery must be designed to comply with local and national safety
     codes, and the authors of this software can not, and do not, take
     any responsibility for such compliance.

     This code was written as part of the EMC HAL project.  For more
     information, go to www.linuxcnc.org.

 
============================================================================
= -->

<!ELEMENT Module (LadderDiagram | FunctionBlock | StructuredText |
InstructionList | 
                  SequentialFunctionChart)+>
<!ATTLIST Module
	ModuleName CDATA #REQUIRED
  Version CDATA #REQUIRED
	Description CDATA ""
	Author CDATA ""
  CreateDate CDATA ""
  ChangeDate CDATA "">

<!--
============================================================================
=
     Ladder Logic Definitions (RLL)

============================================================================
= -->

<!ELEMENT LadderDiagram (Rung*)>
<!ATTLIST LadderDiagram
  DiagramName CDATA ""
  DiagramId CDATA ""
  DiagramType (Main | Subroutine) #REQUIRED
  DiagramComment CDATA ""
  MaxCompsPerRung CDATA "10"
  InternalBits CDATA "128"
  InternalInts CDATA "32"
  InternalFloats CDATA "0"
  Counters CDATA "8"
  Timers CDATA "8">

<!ELEMENT Rung (SubRung+)>
<!ATTLIST Rung
  RungId CDATA #REQUIRED
  RungComment CDATA "">

<!ELEMENT SubRung (Component*)>
<!ATTLIST SubRung
  SubRungID CDATA #REQUIRED
  LeftPos CDATA #REQUIRED
  RightPos CDATA #REQUIRED>

<!ELEMENT Component (Connection+, (Contact | Coil | Timer | Counter |
Math)?)>
<!ATTLIST Component
  Name CDATA #REQUIRED
  CompId CDATA #REQUIRED
  CompType CDATA #REQUIRED
  XPos CDATA #REQUIRED
  YPos CDATA #Required>

<!ELEMENT Connection EMPTY>
<!ATTLIST Connection
  Name CDATA #REQUIRED
  Side (Left | Right) #REQUIRED
  ConnectedTo CDATA #REQUIRED>

<!ELEMENT Contact EMPTY>
<!ATTLIST Contact
  InputId CDATA #REQUIRED>

<!ELEMENT Coil EMPTY>
<!ATTLIST Coil
  OutputID CDATA #REQUIRED>

<!ELEMENT Timer EMPTY>
<!ATTLIST Timer
  TimerId CDATA #REQUIRED
  TimeBase CDATA #IMPLIED
  Preset CDATA #IMPLIED>

<!ELEMENT Counter EMPTY>
<!ATTLIST Counter
  CounterId CDATA #REQUIRED
  Preset CDATA #IMPLIED>

<!ELEMENT Math EMPTY>
<!ATTLIST Math
  Operand1 CDATA #IMPLIED
  Operand2 CDATA #IMPLIED>

<!-- NOTICE - THE REMAINING REPRESENTATION TYPES ARE CURRENTLY ONLY PLACE
     HOLDERS, TO BE FILLED IN AS THEY ARE DEFINED AND IMPLEMENTED. -->

<!--
============================================================================
=
     Function Block Definitions 

============================================================================
= -->

<!ELEMENT FunctionBlock EMPTY>

<!--
============================================================================
=
     Structured Text Definitions 

============================================================================
= -->

<!ELEMENT StructuredText EMPTY>

<!--
============================================================================
=
     Instruction List Definitions 

============================================================================
= -->

<!ELEMENT InstructionList EMPTY>

<!--
============================================================================
=
     Sequential Function Chart Definitions 

============================================================================
= -->

<!ELEMENT SequentialFunctionChart EMPTY>

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
jros | 3 Mar 2008 20:04
Picon
Favicon

Writing to a file from a module

We are having trouble setting up a PID, so we want to try a more
scientific aproach to tunne it up.

To that end Halscope is nice but we would like to be able to save
data in a file.

As a starting point we have modified siggen.c to include a call
to rtapi_print, so we are able to see the output with dmesg.

But it is not enough for us because dmesg buffer gets filled quickly

So can somebody point us to a simple example (explained if posible) that
hopefully allows us to understand how to do it.

May this is a difficult question to ask in a simple mail. If this is the
case we would prefer to know where to start reading in order to be able
to program pieces of code like siggen.c?.

We've tried to look at meter.c code but is to difficult to understand
for us, neither we know if the ideas used there can be valuable to us.

May we are mising some EMC documentation.

Javier

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
Jeff Epler | 3 Mar 2008 20:21
Favicon

Re: Writing to a file from a module

Use sampler/halsampler.  These capture signal values into a buffer from
realtime, then read values out of the buffer in userspace.

There are manpages for halsampler (the userspace portion) and sampler
(The realtime portion).  You can read them at the terminal with
    man halsampler
    man sampler
or online
    http://linuxcnc.org/docs/html/man/man1/halsampler.1.html
    http://linuxcnc.org/docs/html/man/man9/sampler.9.html

You can also find several examples of this in the test suite, such as
tests/stepgen.0 in the source tree.  This particular test sets up
a stepgen and logs the values of its 'dir' and 'step' pins at each
execution of the 'fast' thread; the testing script (scripts/runtests)
compares this output to the file 'expected'.

Jeff

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
SourceForge.net | 4 Mar 2008 00:55
Picon
Favicon

[ emc-Bugs-1906640 ] Incomplete Limit Config

Bugs item #1906640, was opened at 2008-03-03 18:55
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=106744&aid=1906640&group_id=6744

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Stepconf
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Big John T (bigjohnt)
Assigned to: Jeff Epler (jepler)
Summary: Incomplete Limit Config

Initial Comment:
When you select Both Limit X or Y it fails to create the line 

net both-limit-x axis.0.neg-lim-sw-in
and 
net both-limit-x axis.0.pos-lim-sw-in

for each axis.

This results in no limit switch protection!

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=106744&aid=1906640&group_id=6744

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
SourceForge.net | 4 Mar 2008 00:58
Picon
Favicon

[ emc-Bugs-1906641 ] Incorrect Limit Config

Bugs item #1906641, was opened at 2008-03-03 18:58
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=106744&aid=1906641&group_id=6744

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Stepconf
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Big John T (bigjohnt)
Assigned to: Jeff Epler (jepler)
Summary: Incorrect Limit Config

Initial Comment:
If you select Both Limit and Home for X and Y but not for Z it places HOME_SEQUENCE = 1 in axis 0 and
HOME_SEQUENCE = 2 in axis 1 and nothing in axis 2. This results in a failure to do the homing sequence because
of the lack of HOME_SEQUENCE = 0 on Z.

Could confuse a new user.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=106744&aid=1906641&group_id=6744

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
Filipe Tomaz | 4 Mar 2008 17:39
Picon

EMC custom gui/custom machine legal questions

Hello.
My name is Filipe Tomaz.
I own a company in Portugal that makes custom machines for customers. 
During today 04/03/2008 I will make a contract for making 2 machines 
(especial lathes), that if they will work ok, will be changed for 10 
machines per year. This could be exported worldwide.
This is a major contract to my company. I use Linux, but in all my 
previous machines I am using mach3 and gecko drives with good results.

My questions are:

1) What is the cost for me to use the code, change it, and make it 
closed to my customer ? Or if this can be legally done ?
2) If I can continue to use, as I am now, controlling the servo drives 
directly from the parallel port ?
3) If the tool tip radius compensation is implemented and working on EMC 
(lathe mode XZ plane)?
4) If some tool table is implemented and working ?

Thank you for your time.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
Kenneth Lerman | 4 Mar 2008 17:48

Re: EMC custom gui/custom machine legal questions

Answers are embedded.

----- Original Message ----- 
From: "Filipe Tomaz" <ftomaz@...>
To: <emc-developers@...>
Sent: Tuesday, March 04, 2008 11:39 AM
Subject: [Emc-developers] EMC custom gui/custom machine legal questions

> Hello.
> My name is Filipe Tomaz.
> I own a company in Portugal that makes custom machines for customers.
> During today 04/03/2008 I will make a contract for making 2 machines
> (especial lathes), that if they will work ok, will be changed for 10
> machines per year. This could be exported worldwide.
> This is a major contract to my company. I use Linux, but in all my
> previous machines I am using mach3 and gecko drives with good results.
>
> My questions are:
>
> 1) What is the cost for me to use the code, change it, and make it
> closed to my customer ? Or if this can be legally done ?
The cost is zero to use, zero to change. It cannot be closed to your 
customers in the sense that they can get the source and the tools to build 
it. But you can probably invalidate the warranty on the hardware if they do 
things that will break the hardware.

> 2) If I can continue to use, as I am now, controlling the servo drives
> directly from the parallel port ?
Yes, you can control servo drives from the parallel port.

> 3) If the tool tip radius compensation is implemented and working on EMC
> (lathe mode XZ plane)?
I'm not sure, but I believe it is.

> 4) If some tool table is implemented and working ?
I believe yes.

>
> Thank you for your time.
Be sure to check out the emc group on IRC.

Regards,

Ken

>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Microsoft
> Defy all challenges. Microsoft(R) Visual Studio 2008.
> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> _______________________________________________
> Emc-developers mailing list
> Emc-developers@...
> https://lists.sourceforge.net/lists/listinfo/emc-developers
> 

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/

Gmane