まずTIAの設定をちょっと変えます。
そうすれば、Type identifierも表示できるようになります。
それはDevicesなど追加するときに使うOrderNumberです。
ライブラリImport
import clr clr.AddReference(‘C:\\Program Files\\Siemens\\Automation\\Portal V15_1\PublicAPI\\V15.1\\Siemens.Engineering.dll’) from System.IO import DirectoryInfo,FileInfo import Siemens.Engineering as tia import Siemens.Engineering.HW.Features as hwf |
Project作成
#Create new Project project_path = DirectoryInfo (‘C:\\myProject’) project_name = ‘Project_test’ print (‘Starting TIA with UI’) mytia = tia.TiaPortal(tia.TiaPortalMode.WithUserInterface) myproject = mytia .Projects.Create(project_path, project_name) |
OR Project開く
def openTIAProject(tia,open_path): try: project=tia.Projects.Open(open_path) return project except Exception as e: print(e) return None open_path=FileInfo(‘C:\myProject\Project_test\Project_test.ap15_1’) print (‘Starting TIA with UI’) mytia = tia.TiaPortal(tia.TiaPortalMode.WithUserInterface) myproject=openTIAProject(mytia,open_path) |
View切り替え
#Change View myproject.ShowHwEditor(tia.HW.View.Network) |
Drive追加
#Create a G120 Drive with OrderNumber 6SL3244-0BB12-1FA0 4.7.10 G120=myproject.Devices.CreateWithItem(“OrderNumber:6SL3244-0BB12-1FA0/4.7.10/”, “Device_0″,”Device_0”) |
Power Unit追加
ここは一番ハマりました。何回試しても追加できませんのエラーが出てきます。
EngineeringTargetInvocationException: Error when calling method ‘PlugNew’ of type ‘Siemens.Engineering.HW.DeviceImpl’.
Could not create the device item at the container.
そこでまず気がついたのはCanPlugNew()の関数です。
このCanPlugNew(”OrderNumber:xxxxxx”,”Name”,x)のように実行するとこの”部品”がはInsertできるかどうかを先にCheckできます。
そこで…
>False
G120.CanPlugNew(“OrderNumber:6SL3224-0BE21-1UA0/-“,”PowerModul”, 65535) |
もしかしたら、その中のDevices…?
>False
>False
for i in G120: print(i.Name) print(i.CanPlugNew(“OrderNumber:6SL3224-0BE21-1UA0/-“,”PowerModul”, 65535)) |
あの65,535の数字ちょっと怪しい。
そういえば、普通に入れるときはPower UnitはSlot3に入ってしまうのね。
おおお、そこだ!
>False
>True
for i in G120: print(i.Name) print(i.CanPlugNew(“OrderNumber:6SL3224-0BE21-1UA0/-“,”PowerModul”, 3)) |
ふ、できました。
今日はこれで一旦終了します。
次はTelegramの追加・Connection貼り付けなどを紹介します。
はーい、お疲れ様です。