tallakt-plcutil 0.2.2 → 0.2.3

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.
@@ -46,10 +46,15 @@ module PlcUtil
46
46
 
47
47
  def read_pl7_file(io)
48
48
  io.each_line do |l|
49
- mres = l.match(/^%M(W)?(\d+)(:X(\d+))?\t(\S+)\t(\S+)(\t\"?([^\t"]*))?/)
49
+ mres = l.match(/^%M(W|F)?(\d+)(:X(\d+))?\t(\S+)\t(\S+)(\t\"?([^\t"]*))?/)
50
50
  if mres
51
51
  item = OpenStruct.new
52
- item.is_word = mres[1]
52
+ case mres[1]
53
+ when 'W'
54
+ item.is_word = true
55
+ when 'F'
56
+ item.is_float = true
57
+ end
53
58
  item.index = mres[2].to_i
54
59
  item.bit_index = mres[4] && mres[4].to_i
55
60
  item.tagname = mres[5]
@@ -83,6 +88,10 @@ module PlcUtil
83
88
  @intouchfile.new_io_int(tag, data) do |io|
84
89
  io.item_name = '%d S' % (item.index + 400001)
85
90
  end
91
+ elsif item.is_float
92
+ @intouchfile.new_io_real(tag, data) do |io|
93
+ io.item_name = '%d F' % (item.index + 400001)
94
+ end
86
95
  else
87
96
  @intouchfile.new_io_disc(tag, data) do |io|
88
97
  io.item_name = (item.index + 1).to_s
@@ -1,4 +1,4 @@
1
1
  module PlcUtil
2
- VERSION = '0.2.2'
2
+ VERSION = '0.2.3'
3
3
  end
4
4
 
@@ -0,0 +1,139 @@
1
+ TYPE "User defined DB"
2
+ VERSION : 0.1
3
+
4
+
5
+ STRUCT
6
+ int_at_0_0 : INT ; //First int
7
+ bool_at_2_0 : BOOL ; //First bool
8
+ bool_at_2_1 : BOOL ;
9
+ bool_at_2_2 : BOOL ;
10
+ word_at_4_0 : WORD ;
11
+ dword_at_6_0 : DWORD ;
12
+ byte_at_10_0 : BYTE ;
13
+ dint_at_12_0 : DINT ;
14
+ real_at_16_0 : REAL ;
15
+ s5time_at_20 : S5TIME ;
16
+ time_at_22_0 : TIME ;
17
+ date_at_26_0 : DATE ;
18
+ time_of_day_at_28_0 : TIME_OF_DAY ;
19
+ char_at_32_0 : CHAR := 't';
20
+ byte_at_33_0 : BYTE ;
21
+ byte_at_34_0 : BYTE ;
22
+ END_STRUCT ;
23
+ END_TYPE
24
+
25
+ DATA_BLOCK "Data block 1"
26
+ TITLE =
27
+ VERSION : 0.1
28
+
29
+
30
+ STRUCT
31
+ struct_at_0_0 : "User defined DB"; //Temporary placeholder variable
32
+ struct_at_36_0 : "User defined DB";
33
+ char_array_at_72_0 : ARRAY [0 .. 10 ] OF CHAR ;
34
+ anonomous_struct_at_84_0 : STRUCT
35
+ bool_at_84_0 : BOOL ;
36
+ bool_at_84_1 : BOOL ;
37
+ char_at_85_0 : CHAR := 'x';
38
+ char_at_86_0 : CHAR ;
39
+ word_at_88_0 : WORD ;
40
+ char_at_90_0 : CHAR ;
41
+ char_array_at_92_0 : ARRAY [0 .. 9 ] OF //array comment 1
42
+ CHAR ;
43
+ char_at_102_0 : CHAR ;
44
+ END_STRUCT ;
45
+ word_at_104_0 : WORD ;
46
+ char_at_106_0 : CHAR ;
47
+ bool_at_107_0 : BOOL ;
48
+ char_at_108_0 : CHAR ;
49
+ char_array_at_110_0 : ARRAY [0 .. 1 ] OF CHAR ;
50
+ END_STRUCT ;
51
+ BEGIN
52
+ struct_at_0_0.int_at_0_0 := 0;
53
+ struct_at_0_0.bool_at_2_0 := FALSE;
54
+ struct_at_0_0.bool_at_2_1 := FALSE;
55
+ struct_at_0_0.bool_at_2_2 := FALSE;
56
+ struct_at_0_0.word_at_4_0 := W#16#0;
57
+ struct_at_0_0.dword_at_6_0 := DW#16#0;
58
+ struct_at_0_0.byte_at_10_0 := B#16#0;
59
+ struct_at_0_0.dint_at_12_0 := L#0;
60
+ struct_at_0_0.real_at_16_0 := 0.000000e+000;
61
+ struct_at_0_0.s5time_at_20 := S5T#0MS;
62
+ struct_at_0_0.time_at_22_0 := T#0MS;
63
+ struct_at_0_0.date_at_26_0 := D#1990-1-1;
64
+ struct_at_0_0.time_of_day_at_28_0 := TOD#0:0:0.0;
65
+ struct_at_0_0.char_at_32_0 := 't';
66
+ struct_at_0_0.byte_at_33_0 := B#16#0;
67
+ struct_at_0_0.byte_at_34_0 := B#16#0;
68
+ struct_at_36_0.int_at_0_0 := 0;
69
+ struct_at_36_0.bool_at_2_0 := FALSE;
70
+ struct_at_36_0.bool_at_2_1 := FALSE;
71
+ struct_at_36_0.bool_at_2_2 := FALSE;
72
+ struct_at_36_0.word_at_4_0 := W#16#0;
73
+ struct_at_36_0.dword_at_6_0 := DW#16#0;
74
+ struct_at_36_0.byte_at_10_0 := B#16#0;
75
+ struct_at_36_0.dint_at_12_0 := L#0;
76
+ struct_at_36_0.real_at_16_0 := 0.000000e+000;
77
+ struct_at_36_0.s5time_at_20 := S5T#0MS;
78
+ struct_at_36_0.time_at_22_0 := T#0MS;
79
+ struct_at_36_0.date_at_26_0 := D#1990-1-1;
80
+ struct_at_36_0.time_of_day_at_28_0 := TOD#0:0:0.0;
81
+ struct_at_36_0.char_at_32_0 := 't';
82
+ struct_at_36_0.byte_at_33_0 := B#16#0;
83
+ struct_at_36_0.byte_at_34_0 := B#16#0;
84
+ char_array_at_72_0[0] := ' ';
85
+ char_array_at_72_0[1] := ' ';
86
+ char_array_at_72_0[2] := ' ';
87
+ char_array_at_72_0[3] := ' ';
88
+ char_array_at_72_0[4] := ' ';
89
+ char_array_at_72_0[5] := ' ';
90
+ char_array_at_72_0[6] := ' ';
91
+ char_array_at_72_0[7] := ' ';
92
+ char_array_at_72_0[8] := ' ';
93
+ char_array_at_72_0[9] := ' ';
94
+ char_array_at_72_0[10] := ' ';
95
+ anonomous_struct_at_84_0.bool_at_84_0 := FALSE;
96
+ anonomous_struct_at_84_0.bool_at_84_1 := FALSE;
97
+ anonomous_struct_at_84_0.char_at_85_0 := 'x';
98
+ anonomous_struct_at_84_0.char_at_86_0 := ' ';
99
+ anonomous_struct_at_84_0.word_at_88_0 := W#16#0;
100
+ anonomous_struct_at_84_0.char_at_90_0 := ' ';
101
+ anonomous_struct_at_84_0.char_array_at_92_0[0] := ' ';
102
+ anonomous_struct_at_84_0.char_array_at_92_0[1] := ' ';
103
+ anonomous_struct_at_84_0.char_array_at_92_0[2] := ' ';
104
+ anonomous_struct_at_84_0.char_array_at_92_0[3] := ' ';
105
+ anonomous_struct_at_84_0.char_array_at_92_0[4] := ' ';
106
+ anonomous_struct_at_84_0.char_array_at_92_0[5] := ' ';
107
+ anonomous_struct_at_84_0.char_array_at_92_0[6] := ' ';
108
+ anonomous_struct_at_84_0.char_array_at_92_0[7] := ' ';
109
+ anonomous_struct_at_84_0.char_array_at_92_0[8] := ' ';
110
+ anonomous_struct_at_84_0.char_array_at_92_0[9] := ' ';
111
+ anonomous_struct_at_84_0.char_at_102_0 := ' ';
112
+ word_at_104_0 := W#16#0;
113
+ char_at_106_0 := ' ';
114
+ bool_at_107_0 := FALSE;
115
+ char_at_108_0 := ' ';
116
+ char_array_at_110_0[0] := ' ';
117
+ char_array_at_110_0[1] := ' ';
118
+ END_DATA_BLOCK
119
+
120
+ ORGANIZATION_BLOCK "Cycle Execution"
121
+ TITLE = "Main Program Sweep (Cycle)"
122
+ VERSION : 0.1
123
+
124
+
125
+ VAR_TEMP
126
+ OB1_EV_CLASS : BYTE ; //Bits 0-3 = 1 (Coming event), Bits 4-7 = 1 (Event class 1)
127
+ OB1_SCAN_1 : BYTE ; //1 (Cold restart scan 1 of OB 1), 3 (Scan 2-n of OB 1)
128
+ OB1_PRIORITY : BYTE ; //Priority of OB Execution
129
+ OB1_OB_NUMBR : BYTE ; //1 (Organization block 1, OB1)
130
+ OB1_RESERVED_1 : BYTE ; //Reserved for system
131
+ OB1_RESERVED_2 : BYTE ; //Reserved for system
132
+ OB1_PREV_CYCLE : INT ; //Cycle time of previous OB1 scan (milliseconds)
133
+ OB1_MIN_CYCLE : INT ; //Minimum cycle time of OB1 (milliseconds)
134
+ OB1_MAX_CYCLE : INT ; //Maximum cycle time of OB1 (milliseconds)
135
+ OB1_DATE_TIME : DATE_AND_TIME ; //Date and time OB1 started
136
+ END_VAR
137
+ BEGIN
138
+ END_ORGANIZATION_BLOCK
139
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tallakt-plcutil
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2010-10-12 00:00:00.000000000Z
12
+ date: 2010-10-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: dbf
16
- requirement: &82091340 !ruby/object:Gem::Requirement
16
+ requirement: &270292080 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: 1.6.6
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *82091340
24
+ version_requirements: *270292080
25
25
  description: Ruby library for using Siemens, Schneider and Intouch files
26
26
  email: tallak@tveide.net
27
27
  executables:
@@ -34,20 +34,23 @@ extra_rdoc_files:
34
34
  - LICENSE
35
35
  - README.rdoc
36
36
  files:
37
+ - lib/tallakt-plcutil/schneider/pl7_to_intouch_runner.rb
38
+ - lib/tallakt-plcutil/siemens/awlfile.rb
37
39
  - lib/tallakt-plcutil/siemens/awl_pretty_print_runner.rb
38
40
  - lib/tallakt-plcutil/siemens/sdffile.rb
39
41
  - lib/tallakt-plcutil/siemens/step7_to_intouch_runner.rb
40
- - lib/tallakt-plcutil/siemens/awlfile.rb
41
42
  - lib/tallakt-plcutil/version.rb
42
- - lib/tallakt-plcutil/schneider/pl7_to_intouch_runner.rb
43
43
  - lib/tallakt-plcutil/wonderware/intouchfile.rb
44
44
  - lib/tallakt-plcutil/wonderware/intouch_pretty_print_runner.rb
45
45
  - lib/tallakt-plcutil/wonderware/standard_sections.yaml
46
46
  - lib/tallakt-plcutil.rb
47
- - bin/pl7tointouch
48
47
  - bin/awlpp
49
48
  - bin/intouchpp
49
+ - bin/pl7tointouch
50
50
  - bin/s7tointouch
51
+ - test/input_files/step7_v5.4/00000001.AWL
52
+ - test/input_files/step7_v5.4/S7_pro2.zip
53
+ - test/input_files/step7_v5.4/SYMLIST.DBF
51
54
  - History.txt
52
55
  - LICENSE
53
56
  - README.rdoc
@@ -73,9 +76,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
73
76
  version: '0'
74
77
  requirements: []
75
78
  rubyforge_project:
76
- rubygems_version: 1.8.10
79
+ rubygems_version: 1.8.15
77
80
  signing_key:
78
81
  specification_version: 3
79
82
  summary: Ruby PLC file library
80
- test_files: []
81
- has_rdoc:
83
+ test_files:
84
+ - test/input_files/step7_v5.4/00000001.AWL
85
+ - test/input_files/step7_v5.4/S7_pro2.zip
86
+ - test/input_files/step7_v5.4/SYMLIST.DBF