Skip to content

Commit

Permalink
Renamed Ruby-plc to Machines
Browse files Browse the repository at this point in the history
  • Loading branch information
tallakt committed Mar 13, 2009
1 parent e154668 commit c25906b
Show file tree
Hide file tree
Showing 35 changed files with 101 additions and 75 deletions.
38 changes: 32 additions & 6 deletions README.rdoc
Original file line number Original file line Diff line number Diff line change
@@ -1,22 +1,48 @@
= ruby-plc = machines


* FIX (url) * http://github.com/tallakt/machines


== DESCRIPTION: == DESCRIPTION:


FIX (describe your package) A library for creating machine controllers (typically controlled by a PLC)
in Ruby.

The aim is not to replicate the ways you would work with a PLC, but to
provide tools to implement these tasks using Ruby in a Ruby way.

The Plan is to support the following aspects

* Continuous signals discrete and analog with callback updates
* Common timers
* Possibility to run tests i accelelrated time
* Machine state persistence in ActiveRecord - update code while running or have hot standbys
* Rails like scripts to create machine skeletons and install them on their servers
* State machines
* Modbus communication with PLCs and remote IO stations, modbus server options

Future functionality

* OPC UA SOAP and binary conenctivity


== FEATURES/PROBLEMS: == FEATURES/PROBLEMS:


* FIX (list of features or problems) This is still a proof of concept stage library. Although I make an effort to
test code automatically as I go along, there are currently no systems in use
based on this library.

Much functionality is still missing. The library structure will change
frequently in future releases. Code is not commented - this will be
performed if this turns out to be a viable concept.


== SYNOPSIS: == SYNOPSIS:


FIX (code sample of usage) FIX (code sample of usage)


== REQUIREMENTS: == REQUIREMENTS:


* FIX (list of requirements) * rbtree

...probably some more


== INSTALL: == INSTALL:


Expand Down Expand Up @@ -45,4 +71,4 @@ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
2 changes: 1 addition & 1 deletion lib/ruby-plc.rb → lib/machines.rb
Original file line number Original file line Diff line number Diff line change
@@ -1,6 +1,6 @@
$:.unshift(File.dirname(__FILE__)) unless $:.unshift(File.dirname(__FILE__)) unless
$:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__))) $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))


module RubyPlc module Machines
VERSION = '0.0.1' VERSION = '0.0.1'
end end
File renamed without changes.
Original file line number Original file line Diff line number Diff line change
@@ -1,4 +1,4 @@
module RubyPlc module Machines
module IO module IO
module IOAccess module IOAccess
io_buffer = {} io_buffer = {}
Expand Down
Original file line number Original file line Diff line number Diff line change
@@ -1,4 +1,4 @@
module RubyPlc module Machines
module Physical module Physical
class Interlock class Interlock
def initialize def initialize
Expand Down
Original file line number Original file line Diff line number Diff line change
@@ -1,4 +1,4 @@
module RubyPlc module Machines
module Physical module Physical
class Motor class Motor
attr_reader :name, :description, :interlocks attr_reader :name, :description, :interlocks
Expand Down
Original file line number Original file line Diff line number Diff line change
@@ -1,4 +1,4 @@
module RubyPlc module Machines
module Physical module Physical
class Valve class Valve
attr_reader :name, :description, :interlocks attr_reader :name, :description, :interlocks
Expand Down
Original file line number Original file line Diff line number Diff line change
@@ -1,6 +1,6 @@
include 'ruby_plc/sequences/step_base' include 'ruby_plc/sequences/step_base'


module RubyPlc module Machines
module Sequences module Sequences
class ChooseOne class ChooseOne
include StepBase include StepBase
Expand Down
Original file line number Original file line Diff line number Diff line change
@@ -1,6 +1,6 @@
include 'ruby_plc/sequences/step_base' include 'ruby_plc/sequences/step_base'


module RubyPlc module Machines
module Sequences module Sequences
class InParallel class InParallel
include StepBase include StepBase
Expand Down
Original file line number Original file line Diff line number Diff line change
@@ -1,9 +1,9 @@
include 'ruby-plc/sequences/step_base' include 'machines/sequences/step_base'
include 'ruby-plc/timedomain/wait_step' include 'machines/timedomain/wait_step'
include 'ruby-plc/timedomain/timer' include 'machines/timedomain/timer'
include 'ruby-plc/timedomain/sequencer' include 'machines/timedomain/sequencer'


mmodule RubyPlc mmodule Machines
module Sequences module Sequences
class Sequence class Sequence
include StepBase include StepBase
Expand Down
Original file line number Original file line Diff line number Diff line change
@@ -1,7 +1,7 @@
include 'ruby_plc/sequences/step_base' include 'ruby_plc/sequences/step_base'
include 'ruby-plc/sequences/sequence' include 'machines/sequences/sequence'


module RubyPlc module Machines
module Sequences module Sequences
class StackSequence class StackSequence
include StepBase include StepBase
Expand Down
Original file line number Original file line Diff line number Diff line change
@@ -1,6 +1,6 @@
require 'ruby-plc/sequences/step_base' require 'machines/sequences/step_base'


module RubyPlc module Machines
module Sequences module Sequences
class Step < StepBase class Step < StepBase
attr_reader :name attr_reader :name
Expand Down
Original file line number Original file line Diff line number Diff line change
@@ -1,7 +1,7 @@
require 'ruby-plc/etc/notify.rb' require 'machines/etc/notify.rb'
require 'ruby-plc/timedomain/discrete' require 'machines/timedomain/discrete'


module RubyPlc module Machines
module Sequences module Sequences
class StepBase class StepBase
extend Notify extend Notify
Expand Down
Original file line number Original file line Diff line number Diff line change
@@ -1,4 +1,4 @@
module RubyPlc module Machines
module Sequences module Sequences
class WaitStep < Step class WaitStep < Step
attr_accessor :timeout attr_accessor :timeout
Expand Down
Original file line number Original file line Diff line number Diff line change
@@ -1,7 +1,7 @@
require 'ruby-plc/timedomain/timer' require 'machines/timedomain/timer'
require 'ruby-plc/etc/notify' require 'machines/etc/notify'


module RubyPlc module Machines
module TimeDomain module TimeDomain
class Analog class Analog
extend Notify extend Notify
Expand Down
Original file line number Original file line Diff line number Diff line change
@@ -1,4 +1,4 @@
require 'ruby-plc/timedomain/analog.rb' require 'machines/timedomain/analog.rb'


class Object class Object
def analog_attr(name) def analog_attr(name)
Expand Down
Original file line number Original file line Diff line number Diff line change
@@ -1,6 +1,6 @@
include 'ruby-plc/timedomain/analog' include 'machines/timedomain/analog'


module RubyPlc module Machines
module Physical module Physical
class AnalogConstant < Analog class AnalogConstant < Analog
attr_reader :v attr_reader :v
Expand Down
Original file line number Original file line Diff line number Diff line change
@@ -1,8 +1,8 @@
include 'ruby-plc/timedomain/analog' include 'machines/timedomain/analog'
include 'ruby-plc/timedomain/timer' include 'machines/timedomain/timer'
include 'ruby-plc/etc/notify' include 'machines/etc/notify'


module RubyPlc module Machines
module Physical module Physical
module AnalogValue < Analog module AnalogValue < Analog
extend Notify extend Notify
Expand Down
Original file line number Original file line Diff line number Diff line change
@@ -1,6 +1,6 @@
require 'ruby-plc/timedomain/discrete_base' require 'machines/timedomain/discrete_base'


module RubyPlc module Machines
module TimeDomain module TimeDomain
class DiscreteBase #:nodoc: class DiscreteBase #:nodoc:
# forward Declaration # forward Declaration
Expand Down
Original file line number Original file line Diff line number Diff line change
@@ -1,6 +1,6 @@
require 'ruby-plc/timedomain/discrete_base' require 'machines/timedomain/discrete_base'


module RubyPlc module Machines
module TimeDomain module TimeDomain
class Discrete < DiscreteBase class Discrete < DiscreteBase
def initialize(vv = false) def initialize(vv = false)
Expand Down
Original file line number Original file line Diff line number Diff line change
@@ -1,9 +1,9 @@
require 'ruby-plc/timedomain/timer' require 'machines/timedomain/timer'
require 'ruby-plc/timedomain/binary_op_discrete' require 'machines/timedomain/binary_op_discrete'
require 'ruby-plc/timedomain/negated_discrete' require 'machines/timedomain/negated_discrete'
require 'ruby-plc/etc/notify' require 'machines/etc/notify'


module RubyPlc module Machines
module TimeDomain module TimeDomain
class DiscreteBase class DiscreteBase
extend Notify extend Notify
Expand Down
Original file line number Original file line Diff line number Diff line change
@@ -1,6 +1,6 @@
require 'ruby-plc/timedomain/discrete_base' require 'machines/timedomain/discrete_base'


module RubyPlc module Machines
module TimeDomain module TimeDomain
class DiscreteSink < DiscreteBase class DiscreteSink < DiscreteBase
attr_reader :source attr_reader :source
Expand Down
Original file line number Original file line Diff line number Diff line change
@@ -1,6 +1,6 @@
require 'ruby-plc/timedomain/discrete_base' require 'machines/timedomain/discrete_base'


module RubyPlc module Machines
module TimeDomain module TimeDomain
class DiscreteBase #:nodoc: class DiscreteBase #:nodoc:
# forward Declaration # forward Declaration
Expand Down
Original file line number Original file line Diff line number Diff line change
@@ -1,7 +1,7 @@
require 'ruby-plc/timedomain/sampler.rb' require 'machines/timedomain/sampler.rb'
require 'ruby-plc/timedomain/analog_attr.rb' require 'machines/timedomain/analog_attr.rb'


module RubyPlc module Machines
module Physical module Physical
class PID class PID
analog_attr :p, :i, :d, :sample_time, :out_max, :out_min, :setpoint, :input analog_attr :p, :i, :d, :sample_time, :out_max, :out_min, :setpoint, :input
Expand Down
Original file line number Original file line Diff line number Diff line change
@@ -1,7 +1,7 @@
include 'ruby-plc/etc/notify' include 'machines/etc/notify'
include 'ruby-plc/timedomain/sequencer' include 'machines/timedomain/sequencer'


module RubyPlc module Machines
module TimeDomain module TimeDomain


# The Sample class will notify all listeners to the #on_sample function # The Sample class will notify all listeners to the #on_sample function
Expand Down
Original file line number Original file line Diff line number Diff line change
@@ -1,7 +1,7 @@
require 'rbtree' require 'rbtree'
require 'monitor' require 'monitor'


module RubyPlc module Machines
module TimeDomain module TimeDomain
class Scheduler class Scheduler
class Entry class Entry
Expand Down
Original file line number Original file line Diff line number Diff line change
@@ -1,7 +1,7 @@
require 'ruby-plc/timedomain/scheduler' require 'machines/timedomain/scheduler'
require 'ruby-plc/etc/notify' require 'machines/etc/notify'


module RubyPlc module Machines
module TimeDomain module TimeDomain
class Timer class Timer
extend Notify extend Notify
Expand Down
4 changes: 2 additions & 2 deletions spec/analog_spec.rb
Original file line number Original file line Diff line number Diff line change
@@ -1,7 +1,7 @@
require File.dirname(__FILE__) + '/spec_helper.rb' require File.dirname(__FILE__) + '/spec_helper.rb'
require 'ruby-plc/timedomain/analog' require 'machines/timedomain/analog'


include RubyPlc::TimeDomain include Machines::TimeDomain




describe 'Analog signals' do describe 'Analog signals' do
Expand Down
6 changes: 3 additions & 3 deletions spec/discrete_spec.rb
Original file line number Original file line Diff line number Diff line change
@@ -1,8 +1,8 @@
require File.dirname(__FILE__) + '/spec_helper.rb' require File.dirname(__FILE__) + '/spec_helper.rb'
require 'ruby-plc/timedomain/discrete' require 'machines/timedomain/discrete'
require 'ruby-plc/timedomain/discrete_sink' require 'machines/timedomain/discrete_sink'


include RubyPlc::TimeDomain include Machines::TimeDomain




describe 'Discrete signals' do describe 'Discrete signals' do
Expand Down
2 changes: 1 addition & 1 deletion spec/notify_spec.rb
Original file line number Original file line Diff line number Diff line change
@@ -1,5 +1,5 @@
require File.dirname(__FILE__) + '/spec_helper.rb' require File.dirname(__FILE__) + '/spec_helper.rb'
require 'ruby-plc/etc/notify.rb' require 'machines/etc/notify.rb'


class NotifyTestEmpty class NotifyTestEmpty
extend Notify extend Notify
Expand Down
4 changes: 2 additions & 2 deletions spec/scheduler_nowait_spec.rb
Original file line number Original file line Diff line number Diff line change
@@ -1,9 +1,9 @@
require File.dirname(__FILE__) + '/spec_helper.rb' require File.dirname(__FILE__) + '/spec_helper.rb'
require 'ruby-plc/timedomain/scheduler.rb' require 'machines/timedomain/scheduler.rb'
require 'benchmark' require 'benchmark'
require 'timeout' require 'timeout'


include RubyPlc::TimeDomain include Machines::TimeDomain


describe Scheduler do describe Scheduler do
before(:each) do before(:each) do
Expand Down
2 changes: 1 addition & 1 deletion spec/scheduler_spec.rb
Original file line number Original file line Diff line number Diff line change
@@ -1,5 +1,5 @@
require File.dirname(__FILE__) + '/spec_helper.rb' require File.dirname(__FILE__) + '/spec_helper.rb'
require 'ruby-plc/timedomain/scheduler.rb' require 'machines/timedomain/scheduler.rb'
require 'benchmark' require 'benchmark'
require 'timeout' require 'timeout'


Expand Down
2 changes: 1 addition & 1 deletion spec/spec_helper.rb
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@
end end


$:.unshift(File.dirname(__FILE__) + '/../lib') $:.unshift(File.dirname(__FILE__) + '/../lib')
require 'ruby-plc' require 'machines'
8 changes: 4 additions & 4 deletions spec/step_base_spec.rb
Original file line number Original file line Diff line number Diff line change
@@ -1,9 +1,9 @@
require File.dirname(__FILE__) + '/spec_helper.rb' require File.dirname(__FILE__) + '/spec_helper.rb'
require 'ruby-plc/sequences/step_base' require 'machines/sequences/step_base'
require 'ruby-plc/sequences/step' require 'machines/sequences/step'


include RubyPlc::Sequences include Machines::Sequences
include RubyPlc::TimeDomain include Machines::TimeDomain


describe StepBase do describe StepBase do
before(:each) do before(:each) do
Expand Down
4 changes: 2 additions & 2 deletions spec/timer_spec.rb
Original file line number Original file line Diff line number Diff line change
@@ -1,7 +1,7 @@
require File.dirname(__FILE__) + '/spec_helper.rb' require File.dirname(__FILE__) + '/spec_helper.rb'
require 'ruby-plc/timedomain/timer' require 'machines/timedomain/timer'


include RubyPlc::TimeDomain include Machines::TimeDomain


describe Timer do describe Timer do
before(:each) do before(:each) do
Expand Down

0 comments on commit c25906b

Please sign in to comment.