橋平礼の電験三種合格講座

過去50年分以上の電験三種の問題を解いて分かった、電験三種は今も昔も変わりません。過去問を解きながら合格を目指しましょう。

MENU

OpenPLCのslave deviceのArduino UNOのI/Oを全部出力に変更したい。

OpenPLCのArduinoUNOの出力数を変更しようとしましたができませんでした。

しかし、少しの工夫で変更することができました。

まず

f:id:hashi-rei-channel:20220323100340p:plain

内の

//Define the number of registers, inputs and coils to be created
#define NUM_DISCRETE_INPUT      0
#define NUM_INPUT_REGISTERS     6
#define NUM_COILS               12
#define NUM_HOLDING_REGISTERS   0

//Create the I/O pin masks
uint8_t pinMask_DIN = {1};
uint8_t pinMask_AIN
= {A0, A1, A2, A3, A4, A5};
uint8_t pinMask_DOUT = {2, 3, 4, 5, 6, 7, 8,  9, 10, 11, 12, 13};
uint8_t pinMask_AOUT
= {1};

を変更します。

 


 

これだけで簡単にできると思ったのですが、

Runtime側で、下のように設定され、

デジタル入力=5

デジタル出力=4

アナログ出力=3

アナログ入力=6

出力数が変更できませんでした。

f:id:hashi-rei-channel:20220323100740p:plain

 


runtimeを起動して、

localhost:8080で、Loginします。

「ADD new devices」をクリックし、

f:id:hashi-rei-channel:20220323102108p:plain

 

Device Nameを付けて、COM Portを選択して「Save device」で保存します。

f:id:hashi-rei-channel:20220323102439p:plain

f:id:hashi-rei-channel:20220323102554p:plain

そうすると、このように保存できます。

f:id:hashi-rei-channel:20220323102709p:plain

このままでは、

デジタル入力=5

デジタル出力=4

アナログ出力=3

アナログ入力=6

のままです。


そこで、1日がかりで、mbconfig.cfgを発見しました。

青い四角は、自身のuser nameとなります。

f:id:hashi-rei-channel:20220323103212p:plain

mbconfig,cfg内を変更します。

デジタル入力=0

デジタル出力=12

アナログ出力=0

アナログ入力=6

としたかったので、次のように設定しました。

※mbconfig,cfgは、「Save Device」で変更されます。

また、Slave Devicesの表示には反映されません。

 

Num_Devices = "1"
Polling_Period = "100"
Timeout = "1000"
# ------------
#   DEVICE 0
# ------------
device0.name = "uno"
device0.slave_id = "0"
device0.protocol = "RTU"
device0.address = "/dev/ttyS2"
device0.IP_Port = ""
device0.RTU_Baud_Rate = "115200"
device0.RTU_Parity = "None"
device0.RTU_Data_Bits = "8"
device0.RTU_Stop_Bits = "1"
device0.RTU_TX_Pause = "0"

device0.Discrete_Inputs_Start = "0"
device0.Discrete_Inputs_Size = "0"
device0.Coils_Start = "0"
device0.Coils_Size = "12"
device0.Input_Registers_Start = "0"
device0.Input_Registers_Size = "6"
device0.Holding_Registers_Read_Start = "0"
device0.Holding_Registers_Read_Size = "0"
device0.Holding_Registers_Start = "0"
device0.Holding_Registers_Size = "0"

 


ラダープログラムです。

f:id:hashi-rei-channel:20220323140235p:plain

A0に押しボタンスイッチを接続し、スイッチを押すとM0がONし、

LEDがY0からY11まで点灯します。

f:id:hashi-rei-channel:20220323135932p:plain

スイッチを押すと、全部点灯しました。

f:id:hashi-rei-channel:20220323140014p:plain

runtimeのmonitoringでも確認できました。

f:id:hashi-rei-channel:20220323140152p:plain