Siemens#Memory CardでRecipesを扱う

s12

SiemensのPLCは必ずMemory Cardが付けてて、その役目としてはHardware Config、Userプログラム、Recipes、Logging様々な機能が持っています。今回はまずどうやってDBのデータをMemory Cardへ書き込む、読み取りについて説明したいと思います。今回は仮に4つのRecipesがあって、それぞれ違うの生産データがありまして生産によって違うレシビを取るんです。

r1

Step#1

r2

まずはその4つのDBで右クリックしGeneral→Attributesで”Only store in load memory”を選択してください。”Optimized block access”のCheck Boxを外してください。

Step#2

r3

今度はDB4−これは実際にRecipesのDBから読み込む、書き込むとき使うのDBです。同じように右クリックします。

r4

”Optimized block access”のCheck Boxを外してください。

Step#3

r5

UDTを作ります。これはめんどくさいという方が飛んでください。REQ、REQ_VAL、BUSYは次のSTEPで使われてるのFunction Blockで使うので一回このUDT作ってあとはDBの中に宣言すればOKです。毎回もBITを割付る必要もありません。

*SWはSINTとして、USERがどんなDBが欲しいか?をシミュレーションするスイッチです。

Step#4

r6

次はPOINTERのUDTを作ります。POINTERについてはこの↓リンクについて説明があります。

SiemensPLC#BLKMOVとPOINTER

SiemensPLC#S7300_400 Pointerの使用方法(STL編)

ここで準備OK!

Step#5

r7

では新しいDB3を作って先Step#3で定義したUDTとして変数を宣言します。

Step#6

r8

次は新しいFCを作ります。このFCはDB DataをMemory Cardへ書き込む、読み取りするプログラムが入ってます。

Step#7

Screen Shot 2017-04-17 at 10.15.29 pm

Network1はこのCodeを入れます。Pointerのアクセスアドレス、データタイプ、長さ、を設定し、最後はUSER選ぶのレシビ番号によってアクセスするDBを分けます。(もちろん1つのDBで管理する方法もありますけど、毎回もアドレスのOFFSETを計算するのもめんどくさいし、管理上でもよくない…と私はそう思います。)

Step#8

r10

Network2でWRIT_DBLというFUNCTION BLOCKを入れます。
これはLOAD MEMORYのDBへ書き込むのFunction Blockです。
REQ:書き込み始まるのビット。
SRCBLK:どこのデータをから?これはStep#7によって変わります。
RET_VAL:返却値、命令の実行結果がここで反映されます。
BUSY:書き込みしてるというFLAG
DSTBLK:転送先。これはStep#7によって変わります。
最後は命令実行のあとにREQのFLAGをリセットします。

Step#9

r11

Network2でREAD_DBLというFUNCTION BLOCKを入れます。
これはLOAD MEMORYのDBから読み取りのFunction Blockです。
REQ:書き込み始まるのビット。
SRCBLK:何処のLoad Memory?これもStep#7によって変わります。
RET_VAL:返却値、命令の実行結果がここで反映されます。
BUSY:書き込みしてるというFLAG
DSTBLK:転送先。これはStep#7によって変わります。
最後は命令実行のあとにREQのFLAGをリセットします。

これだけです。それじゃまたねー

Footer_Basic

Please Support some devices for my blog

Amazon Gift List

Find ME

Twitter:@3threes2
Email:soup01threes*gmail.com (* to @)
YoutubeChannel:https://www.youtube.com/channel/UCQ3CHGAIXZAbeOC_9mjQiWQ

シェアする

  • このエントリーをはてなブックマークに追加

フォローする