ladder_drive 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +11 -0
  3. data/Gemfile +8 -0
  4. data/Gemfile.lock +41 -0
  5. data/LICENSE +21 -0
  6. data/README.md +191 -0
  7. data/README_jp.md +193 -0
  8. data/Rakefile +9 -0
  9. data/bin/console +14 -0
  10. data/bin/setup +8 -0
  11. data/exe/ladder_drive +28 -0
  12. data/ladder_drive.gemspec +33 -0
  13. data/lib/ladder_drive/asm.rb +211 -0
  14. data/lib/ladder_drive/cli.rb +55 -0
  15. data/lib/ladder_drive/config.rb +107 -0
  16. data/lib/ladder_drive/config_target.rb +93 -0
  17. data/lib/ladder_drive/console.rb +113 -0
  18. data/lib/ladder_drive/intel_hex.rb +79 -0
  19. data/lib/ladder_drive/ladder_drive.rb +36 -0
  20. data/lib/ladder_drive/plc_define.rb +35 -0
  21. data/lib/ladder_drive/plc_device.rb +171 -0
  22. data/lib/ladder_drive/protocol/emulator/emu_protocol.rb +54 -0
  23. data/lib/ladder_drive/protocol/emulator/emulator.rb +29 -0
  24. data/lib/ladder_drive/protocol/keyence/keyence.rb +31 -0
  25. data/lib/ladder_drive/protocol/keyence/kv_device.rb +51 -0
  26. data/lib/ladder_drive/protocol/keyence/kv_protocol.rb +187 -0
  27. data/lib/ladder_drive/protocol/mitsubishi/mc_protocol.rb +268 -0
  28. data/lib/ladder_drive/protocol/mitsubishi/mitsubishi.rb +30 -0
  29. data/lib/ladder_drive/protocol/mitsubishi/qdevice.rb +114 -0
  30. data/lib/ladder_drive/protocol/protocol.rb +107 -0
  31. data/lib/ladder_drive/tasks/build.rb +101 -0
  32. data/lib/ladder_drive/uploader.rb +101 -0
  33. data/lib/ladder_drive/version.rb +26 -0
  34. data/lib/ladder_drive.rb +32 -0
  35. data/lib/plc/LICENSE +21 -0
  36. data/lib/plc/emulator/emu_device.rb +121 -0
  37. data/lib/plc/emulator/emu_plc.rb +482 -0
  38. data/lib/plc/emulator/emu_plc_server.rb +71 -0
  39. data/lib/plc/emulator/emulator.rb +28 -0
  40. data/lib/plc/keyence/kv/kv-5000/DocumentWindowInfo.xml +91 -0
  41. data/lib/plc/keyence/kv/kv-5000/KvsMon.ini +0 -0
  42. data/lib/plc/keyence/kv/kv-5000/LadderDrive.mod +0 -0
  43. data/lib/plc/keyence/kv/kv-5000/LbkMdm.ini +0 -0
  44. data/lib/plc/keyence/kv/kv-5000/Main.mod +0 -0
  45. data/lib/plc/keyence/kv/kv-5000/MonEnv.kmu +1 -0
  46. data/lib/plc/keyence/kv/kv-5000/PlcSended.dky +0 -0
  47. data/lib/plc/keyence/kv/kv-5000/SensorMonitorInfo.xml +4 -0
  48. data/lib/plc/keyence/kv/kv-5000/TransInfo.tif +0 -0
  49. data/lib/plc/keyence/kv/kv-5000/UnitSet.ue2 +0 -0
  50. data/lib/plc/keyence/kv/kv-5000/UnitSet.ue2.old +0 -0
  51. data/lib/plc/keyence/kv/kv-5000/WsTreeEnv.xml +28 -0
  52. data/lib/plc/keyence/kv/kv-5000/kv-5000.cm1 +0 -0
  53. data/lib/plc/keyence/kv/kv-5000/kv-5000.cm2 +0 -0
  54. data/lib/plc/keyence/kv/kv-5000/kv-5000.ftc +0 -0
  55. data/lib/plc/keyence/kv/kv-5000/kv-5000.kpr +0 -0
  56. data/lib/plc/keyence/kv/kv-5000/kv-5000.lbl +0 -0
  57. data/lib/plc/keyence/kv/kv-5000/kv-5000.mil +0 -0
  58. data/lib/plc/keyence/kv/kv-5000/kv-5000.spl +0 -0
  59. data/lib/plc/keyence/kv/kv-5000/operand-history.txt +16 -0
  60. data/lib/plc/keyence/kv/kv-5000/sample.al2 +2 -0
  61. data/lib/plc/mitsubishi/iq-r/r08/r08.gx3 +0 -0
  62. data/lib/plc/plc.rb +27 -0
  63. data/sample/ladder_drive/sample1.esc +4 -0
  64. data/sample/ladder_drive/sample2.esc +28 -0
  65. data/sample/ladder_drive/sample2.png +0 -0
  66. data/template/escalator/config/plc.yml +27 -0
  67. data/template/ladder_drive/Rakefile +1 -0
  68. data/template/ladder_drive/asm/main.esc +70 -0
  69. data/template/ladder_drive/config/plc.yml +27 -0
  70. metadata +174 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 3c79beb0c083c72e759e676ecdffe1172dae07ba
4
+ data.tar.gz: 7352398566885573d294b5f4b84473a0bcd4ad14
5
+ SHA512:
6
+ metadata.gz: 84cb917f7b171e3631bc246dd9b2135b6992ef7c89de41506fc0b4a6f7f71b07d80dfa4a2c62bd81f2087eda9ed89ae28f9b8e2e2903ba72c5620c69fe56d689
7
+ data.tar.gz: 00a67076c5529457af230c57036964d52bf509089c10daf33cd085ca6b18f10cd114d16f6b8fdd492b7daea13814b215e6fd21ad638d10f09c73b20702fb349d
data/.gitignore ADDED
@@ -0,0 +1,11 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ *.gem
11
+ /work/
data/Gemfile ADDED
@@ -0,0 +1,8 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in ladder_drive.gemspec
4
+ gemspec
5
+
6
+ gem "test-unit"
7
+
8
+ gem "activesupport", ">=4.2.7"
data/Gemfile.lock ADDED
@@ -0,0 +1,41 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ ladder_drive (0.3.0)
5
+ activesupport (>= 4.2.7)
6
+ thor
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ activesupport (4.2.7.1)
12
+ i18n (~> 0.7)
13
+ json (~> 1.7, >= 1.7.7)
14
+ minitest (~> 5.1)
15
+ thread_safe (~> 0.3, >= 0.3.4)
16
+ tzinfo (~> 1.1)
17
+ i18n (0.7.0)
18
+ json (1.8.3)
19
+ minitest (5.9.1)
20
+ power_assert (0.2.7)
21
+ rake (10.5.0)
22
+ test-unit (3.1.7)
23
+ power_assert
24
+ thor (0.19.4)
25
+ thread_safe (0.3.5)
26
+ tzinfo (1.2.2)
27
+ thread_safe (~> 0.1)
28
+
29
+ PLATFORMS
30
+ ruby
31
+ x64-mingw32
32
+
33
+ DEPENDENCIES
34
+ activesupport (>= 4.2.7)
35
+ bundler (~> 1.11)
36
+ ladder_drive!
37
+ rake (~> 10.0)
38
+ test-unit
39
+
40
+ BUNDLED WITH
41
+ 1.14.3
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2016 ITO SOFT DESIGN Inc.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,191 @@
1
+ [[Japanese description is here.]](https://github.com/ito-soft-design/ladder_drive/blob/master/README_jp.md)
2
+
3
+ # LadderDrive
4
+
5
+ The ladder_drive is a simple abstract ladder for PLC (Programmable Logic Controller).
6
+
7
+ We aim to design abstraction ladder which is able to run on any PLC with same ladder source or binary and prepare full stack tools.
8
+
9
+ # Getting started
10
+
11
+ It's required the Ruby environment.
12
+ To prepare the Ruby environment, please find web sites.
13
+
14
+ Install LadderDrive at the command prompt.
15
+
16
+ ```sh
17
+ $ gem install ladder_drive
18
+ ```
19
+
20
+ [![https://gyazo.com/6f00d74612def41fb33d836275b74c24](https://i.gyazo.com/6f00d74612def41fb33d836275b74c24.gif)](https://gyazo.com/6f00d74612def41fb33d836275b74c24)
21
+
22
+ # Create an LadderDrive project
23
+
24
+ At the command prompt, create a new LadderDrive project.
25
+
26
+ ```sh
27
+ $ ladder_drive create my_project
28
+ $ cd my_project
29
+ ```
30
+
31
+ [![https://gyazo.com/c538f66129aa425e2b1da4f478a10f52](https://i.gyazo.com/c538f66129aa425e2b1da4f478a10f52.gif)](https://gyazo.com/c538f66129aa425e2b1da4f478a10f52)
32
+
33
+ Created files are consisted like the tree below.
34
+
35
+ ```
36
+ .
37
+ ├── Rakefile
38
+ ├── asm
39
+ │ └── main.esc
40
+ ├── config
41
+ │ └── plc.yml
42
+ └── plc
43
+ └── mitsubishi
44
+ └── iq-r
45
+ └── r08
46
+ ├── LICENSE
47
+ └── r08.gx3
48
+ ```
49
+
50
+ # Connection configuration
51
+
52
+ ## PLC configuration
53
+
54
+ There is a plc project under the plc directory.
55
+ Launch the one of the plc project which you want to use.
56
+ (Currently we support the Emulator and MITSUBISHI iQ-R R08CUP only.)
57
+
58
+ Configure ethernet connection by the tool which is provided by plc maker.
59
+ Then upload settings and plc program to the plc.
60
+
61
+ [![](http://img.youtube.com/vi/fGdyIo9AmuE/0.jpg)](https://youtu.be/fGdyIo9AmuE)
62
+
63
+
64
+ ## LadderDrive configuration
65
+
66
+ There is a configuration file at config/plc.yml.
67
+ Currently we support MITSUBISHI iQ-R R08CUP and the Emulator.
68
+ You only change host to an ip address of your plc.
69
+
70
+ ```
71
+ # plc.yml
72
+ plc: # Beginning of PLC section.
73
+ iq-r: # It's a target name
74
+ cpu: iq-r # It's just a comment.
75
+ protocol: mc_protocol # It's a protocol to communicate with PLC.
76
+ host: 192.168.0.10 # It's PLC's IP address or dns name.
77
+ port: 5007 # It's PLC's port no.
78
+ ```
79
+
80
+ [![](http://img.youtube.com/vi/m0JaOBFIHqw/0.jpg)](https://youtu.be/m0JaOBFIHqw)
81
+
82
+
83
+ ## LadderDrive programming
84
+
85
+ LadderDrive program file is located under the asm directory.
86
+ By default, use asm/main.esc.
87
+ Edit it and programming.
88
+
89
+ Refer [Wiki](https://github.com/ito-soft-design/ladder_drive/wiki/mnemonic) to check mnemonic.
90
+
91
+ ```
92
+ # main.esc
93
+ # |M0|-|M1|----(M2)
94
+ LD M0
95
+ AND M1
96
+ OUT M2
97
+ END
98
+ ```
99
+
100
+ [![](http://img.youtube.com/vi/OjaSqrkWv8Q/0.jpg)](https://youtu.be/OjaSqrkWv8Q)
101
+
102
+
103
+ # Transfer the LadderDrive program
104
+
105
+ At the command prompt, use ```rake``` command to upload ladder_drive program to the plc.
106
+ By default, the target plc is ```emulator```. Then launch the Emulator.
107
+
108
+ ```sh
109
+ $ rake
110
+ ```
111
+
112
+ If you use with the ```target``` option, the target PLC is it.
113
+
114
+ ```sh
115
+ $ rake target=iq-r
116
+ ```
117
+
118
+ You can describe the default target by the target section in plc.yml.
119
+
120
+ ```
121
+ # plc.yml
122
+ default:
123
+ target: iq-r
124
+ ```
125
+
126
+ ```rake``` is same as ```rake target=iq-r```.
127
+
128
+
129
+ The LadderDrive program runs immediately after uploaded.
130
+
131
+ ```sh
132
+ $ rake [target=iq-r]
133
+ uploading build/main.hex ...
134
+ launching emulator ...
135
+ done launching
136
+ done uploading
137
+
138
+ LadderDrive is an abstract PLC.
139
+ This is a console to communicate with PLC.
140
+
141
+ >
142
+ ```
143
+
144
+ After uploaded the program, it becomes in to console mode.
145
+ You can read and write a device by entering commands.
146
+
147
+ Use the r command if you want to read devices.
148
+ Below example reads values of devices from M0 to M7.
149
+
150
+ ```sh
151
+ > r m0 8
152
+ ```
153
+
154
+ Below example writes values to devices from M0 to M7.
155
+
156
+ ```sh
157
+ > w m0 0 0 0 1 1 0 1 1
158
+ ```
159
+
160
+ If you want to turn on and off the device like pushing a button, use p command.
161
+
162
+ ```sh
163
+ > p m0
164
+ ```
165
+
166
+ You can describe turn on time duration after a device. The unit is sec.
167
+
168
+ ```sh
169
+ > p m0 1.5
170
+ ```
171
+
172
+ ```
173
+ # |M0|---(M1)
174
+ LD M0
175
+ OUT M1
176
+ ```
177
+
178
+ [![https://gyazo.com/565d24a35887503281a46775f6ccd747](https://i.gyazo.com/565d24a35887503281a46775f6ccd747.gif)](https://gyazo.com/565d24a35887503281a46775f6ccd747)
179
+
180
+ <!-- [![](http://img.youtube.com/vi/qGbicGLB7Gs/0.jpg)](https://youtu.be/qGbicGLB7Gs) -->
181
+
182
+
183
+ # Information related ladder_drive
184
+
185
+ - [My japanese diary [ladder_drive]](http://diary.itosoft.com/?category=ladder_drive)
186
+ - [Wiki](https://github.com/ito-soft-design/ladder_drive/wiki/)
187
+
188
+
189
+ ## License
190
+
191
+ The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
data/README_jp.md ADDED
@@ -0,0 +1,193 @@
1
+ # エスカレーター
2
+
3
+ ## 概要
4
+
5
+ エスカレーターはPLC(Programmable Logic Controller)向けの抽象的なラダーです。
6
+ どのPLCでも同じソース(できればバイナリー)で実行できる形態を目指しています。
7
+
8
+ まずはニーモニックレベルで実現し、その上に分かりやすい形のプログラミングツールを用意できればと考えています。
9
+
10
+ ## 使い方
11
+
12
+ 使用するにはRubyが実行できる環境が必要です。
13
+ Rubyの実行環境の構築はWebサイト等を検索して構築してください。
14
+
15
+ ### インストール
16
+
17
+ gemでエスカレーターをインストールします。
18
+
19
+ ```sh
20
+ $ gem install ladder_drive
21
+ ```
22
+
23
+ [![https://gyazo.com/6f00d74612def41fb33d836275b74c24](https://i.gyazo.com/6f00d74612def41fb33d836275b74c24.gif)](https://gyazo.com/6f00d74612def41fb33d836275b74c24)
24
+
25
+ ### プロジェクト作成
26
+
27
+ エスカレーターをインストールするとladder_driveコマンドが使用できる様になります。
28
+ ladder_driveコマンドでラダーを構成するプロジェクトファイルを作ります。
29
+
30
+ ```sh
31
+ $ ladder_drive create my_project
32
+ $ cd my_project
33
+ ```
34
+
35
+ [![https://gyazo.com/c538f66129aa425e2b1da4f478a10f52](https://i.gyazo.com/c538f66129aa425e2b1da4f478a10f52.gif)](https://gyazo.com/c538f66129aa425e2b1da4f478a10f52)
36
+
37
+ ファイルの構成は下の様になっています。
38
+ plc以下にエスカレーターを実行するPLCプロジェクトの雛形があります。
39
+ 現在はエミュレーターと三菱電機のiQ-RシリーズR08CPUのみの対応となっています。
40
+ 他メーカーや他の機種は今後追加する予定です。
41
+
42
+
43
+ ```
44
+ .
45
+ ├── Rakefile
46
+ ├── asm
47
+ │   └── main.esc
48
+ ├── config
49
+ │   └── plc.yml
50
+ └── plc
51
+ └── mitsubishi
52
+ └── iq-r
53
+ └── r08
54
+ ├── LICENSE
55
+ └── r08.gx3
56
+ ```
57
+
58
+ ### 通信設定
59
+
60
+ #### PLCの通信設定
61
+
62
+ plc以下の使用したいPLCのプロジェクトファイルを開きます。
63
+ IPアドレスなど必要な箇所変更し、PLCに転送します。
64
+
65
+ [![](http://img.youtube.com/vi/fGdyIo9AmuE/0.jpg)](https://youtu.be/fGdyIo9AmuE)
66
+
67
+ #### エスカレーターの設定
68
+
69
+ config/plc.ymlファイルで設定します。
70
+
71
+ 現在はiQ-Rのみの対応なので:host: 192.168.0.10の行でPLCに設定したIPアドレスを指定するだけで接続できます。
72
+
73
+ ```
74
+ # plc.yml
75
+ plc: # Beginning of PLC section.
76
+ iq-r: # It's a target name
77
+ cpu: iq-r # It's just a comment.
78
+ protocol: mc_protocol # It's a protocol to communicate with PLC.
79
+ host: 192.168.0.10 # It's PLC's IP address or dns name.
80
+ port: 5007 # It's PLC's port no.
81
+ ```
82
+
83
+ [![](http://img.youtube.com/vi/m0JaOBFIHqw/0.jpg)](https://youtu.be/m0JaOBFIHqw)
84
+
85
+ ### エスカレータープログラム作成
86
+
87
+ エスカレーターのプログラムはasm以下にあります。
88
+ 現在はmain.escファイルから生成します。
89
+
90
+ main.escを編集しプログラムを作成します。
91
+ PLC側の実装がまだ進んでいないので実行できるニーモニックはLD、OUT、AND、ORとその反転程度です。
92
+
93
+ ニーモニックについては[Wiki](https://github.com/ito-soft-design/ladder_drive/wiki/mnemonic)の方を参照してください。
94
+
95
+ ```
96
+ # main.esc
97
+ # |M0|-|M1|----(M2)
98
+ LD M0
99
+ AND M1
100
+ OUT M2
101
+ END
102
+ ```
103
+
104
+ [![](http://img.youtube.com/vi/OjaSqrkWv8Q/0.jpg)](https://youtu.be/OjaSqrkWv8Q)
105
+
106
+ ### プログラムの転送
107
+
108
+ エスカレータープログラムをplcに転送するには```rake```コマンドを使用します。
109
+ デフォルトではエミュレーターが対象になり、エミュレーターが起動します。
110
+
111
+ ```sh
112
+ $ rake
113
+ ```
114
+
115
+ targetを指定するとplc.ymlのplcセクション内の該当するターゲットが対象になります。
116
+
117
+ ```sh
118
+ $ rake target=iq-r
119
+ ```
120
+
121
+ plc.ymlファイルのdefaultセクションのtargetでデフォルトのターゲトを設定できます。
122
+
123
+ ```
124
+ # plc.yml
125
+ default:
126
+ target: iq-r
127
+ ```
128
+
129
+ この場合に```rake```を行うと```rake target=iq-r```をしたのと同じになります。
130
+
131
+
132
+ 転送後プログラムが実行されます。
133
+
134
+ ```sh
135
+ $ rake [target=iq-r]
136
+ uploading build/main.hex ...
137
+ launching emulator ...
138
+ done launching
139
+ done uploading
140
+
141
+ LadderDrive is an abstract PLC.
142
+ This is a console to communicate with PLC.
143
+
144
+ >
145
+ ```
146
+
147
+ アップロードが完了するとコンソールモードになります。
148
+ コンソールモードではコマンドを打つ事でデバイスの読み書きができます。
149
+
150
+ デバイスの値を読み取るにはrコマンドを使用します。
151
+ 下の例ではm0から8子分のデバイスを読み出します。
152
+
153
+ ```sh
154
+ > r m0 8
155
+ ```
156
+
157
+ デバイスに値を書き込むにはwコマンドを使用します。
158
+ 下の例ではM0からM7まで書き込んでいます。
159
+
160
+ ```sh
161
+ > w m0 0 0 0 1 1 0 1 1
162
+ ```
163
+
164
+ ボタンを押した様にパルス状にデバイスをオンにするにはpコマンドを使用します。
165
+
166
+ ```sh
167
+ > p m0
168
+ ```
169
+
170
+ オンになる時間をデバイスのあとに指定することもできます。単位は秒です。
171
+
172
+ ```sh
173
+ > p m0 1.5
174
+ ```
175
+
176
+ ```
177
+ # |M0|---(M1)
178
+ LD M0
179
+ OUT M1
180
+ ```
181
+
182
+ [![https://gyazo.com/565d24a35887503281a46775f6ccd747](https://i.gyazo.com/565d24a35887503281a46775f6ccd747.gif)](https://gyazo.com/565d24a35887503281a46775f6ccd747)
183
+
184
+ <!-- [![](http://img.youtube.com/vi/qGbicGLB7Gs/0.jpg)](https://youtu.be/qGbicGLB7Gs) -->
185
+
186
+ ## エスカレーターに関する情報
187
+
188
+ - [一往確認日記 [ladder_drive]](http://diary.itosoft.com/?category=ladder_drive)
189
+ - [Wiki](https://github.com/ito-soft-design/ladder_drive/wiki/)
190
+
191
+ ## ライセンス
192
+
193
+ MIT
data/Rakefile ADDED
@@ -0,0 +1,9 @@
1
+ require "bundler/gem_tasks"
2
+ require 'rake/testtask'
3
+
4
+ task :default => [:test]
5
+
6
+ Rake::TestTask.new do |t|
7
+ t.test_files = FileList['test/**/test*.rb']
8
+ t.verbose = true
9
+ end
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "ladder_drive"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
data/exe/ladder_drive ADDED
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # The MIT License (MIT)
4
+ #
5
+ # Copyright (c) 2016 ITO SOFT DESIGN Inc.
6
+ #
7
+ # Permission is hereby granted, free of charge, to any person obtaining
8
+ # a copy of this software and associated documentation files (the
9
+ # "Software"), to deal in the Software without restriction, including
10
+ # without limitation the rights to use, copy, modify, merge, publish,
11
+ # distribute, sublicense, and/or sell copies of the Software, and to
12
+ # permit persons to whom the Software is furnished to do so, subject to
13
+ # the following conditions:
14
+ #
15
+ # The above copyright notice and this permission notice shall be
16
+ # included in all copies or substantial portions of the Software.
17
+ #
18
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
19
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
21
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
22
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
23
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
24
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25
+
26
+ require "ladder_drive"
27
+
28
+ LadderDrive::CLI.start
@@ -0,0 +1,33 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'ladder_drive/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "ladder_drive"
8
+ spec.version = LadderDrive::VERSION
9
+ spec.authors = ["Katsuyoshi Ito"]
10
+ spec.email = ["kito@itosoft.com"]
11
+
12
+ spec.summary = %q{The ladder_drive is a simple abstract ladder for PLC (Programmable Logic Controller). Formerly known as 'escalator'.}
13
+ spec.description = %q{We aim to design abstraction ladder which is able to run on any PLC with same ladder source or binary and prepare full stack tools.}
14
+ spec.homepage = "https://github.com/ito-soft-design/ladder_drive"
15
+ spec.license = "MIT"
16
+
17
+ spec.add_dependency "thor"
18
+ spec.add_runtime_dependency "activesupport", ">=4.2.7"
19
+
20
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
21
+ spec.bindir = "exe"
22
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
+ spec.require_paths = ["lib"]
24
+
25
+ spec.add_development_dependency "bundler", "~> 1.11"
26
+ spec.add_development_dependency "rake", "~> 10.0"
27
+
28
+ spec.post_install_message = <<-MESSAGE
29
+ ! The 'ladder_drive' gem has been deprecated and has been replaced by 'ladder_drive'.
30
+ ! See: https://rubygems.org/gems/ladder_drive
31
+ ! And: https://github.com/ito-soft-design/ladder_drive
32
+ MESSAGE
33
+ end