added ba_facility

This commit is contained in:
Nico Melone
2025-05-11 15:58:02 -05:00
parent 658e970ce0
commit 6d73541a54
9 changed files with 15894 additions and 40 deletions

View File

@@ -12,47 +12,25 @@
},
{
"cell_type": "code",
"execution_count": 4,
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"ip_address = \"107.84.248.90\" # \"ngrok.iot.inhandnetworks.com:3021\""
"ip_address = \"166.195.18.153\" # \"ngrok.iot.inhandnetworks.com:3021\"\n",
"path = '/Users/nico/Documents/GitHub/HP_InHand_IG502/Pub_Sub/plcfreshwater_advvfdipp/thingsboard/as11_tag_dump.json' # code snippets/tag_dump.json'"
]
},
{
"cell_type": "code",
"execution_count": 5,
"execution_count": 4,
"metadata": {},
"outputs": [
{
"ename": "ResponseError",
"evalue": "failed to get attribute list",
"output_type": "error",
"traceback": [
"\u001b[31m---------------------------------------------------------------------------\u001b[39m",
"\u001b[31mResponseError\u001b[39m Traceback (most recent call last)",
"\u001b[36mFile \u001b[39m\u001b[32m~/miniconda3/envs/pycomm/lib/python3.13/site-packages/pycomm3/logix_driver.py:499\u001b[39m, in \u001b[36mLogixDriver._get_instance_attribute_list_service\u001b[39m\u001b[34m(self, program)\u001b[39m\n\u001b[32m 498\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m response:\n\u001b[32m--> \u001b[39m\u001b[32m499\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m ResponseError(\n\u001b[32m 500\u001b[39m \u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33msend_unit_data returned not valid data - \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mresponse.error\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m\"\u001b[39m\n\u001b[32m 501\u001b[39m )\n\u001b[32m 503\u001b[39m last_instance = \u001b[38;5;28mself\u001b[39m._parse_instance_attribute_list(response, tag_list)\n",
"\u001b[31mResponseError\u001b[39m: send_unit_data returned not valid data - Object state conflict",
"\nThe above exception was the direct cause of the following exception:\n",
"\u001b[31mResponseError\u001b[39m Traceback (most recent call last)",
"\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[5]\u001b[39m\u001b[32m, line 1\u001b[39m\n\u001b[32m----> \u001b[39m\u001b[32m1\u001b[39m \u001b[38;5;28;01mwith\u001b[39;00m LogixDriver(ip_address) \u001b[38;5;28;01mas\u001b[39;00m plc:\n\u001b[32m 2\u001b[39m \u001b[38;5;66;03m#info = plc.get_plc_info()\u001b[39;00m\n\u001b[32m 3\u001b[39m plctags = plc.get_tag_list()\n\u001b[32m 4\u001b[39m \u001b[38;5;66;03m#print(info)\u001b[39;00m\n",
"\u001b[36mFile \u001b[39m\u001b[32m~/miniconda3/envs/pycomm/lib/python3.13/site-packages/pycomm3/cip_driver.py:144\u001b[39m, in \u001b[36mCIPDriver.__enter__\u001b[39m\u001b[34m(self)\u001b[39m\n\u001b[32m 143\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34m__enter__\u001b[39m(\u001b[38;5;28mself\u001b[39m):\n\u001b[32m--> \u001b[39m\u001b[32m144\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mopen\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 145\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\n",
"\u001b[36mFile \u001b[39m\u001b[32m~/miniconda3/envs/pycomm/lib/python3.13/site-packages/pycomm3/logix_driver.py:165\u001b[39m, in \u001b[36mLogixDriver.open\u001b[39m\u001b[34m(self)\u001b[39m\n\u001b[32m 163\u001b[39m ret = \u001b[38;5;28msuper\u001b[39m().open()\n\u001b[32m 164\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m ret:\n\u001b[32m--> \u001b[39m\u001b[32m165\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_initialize_driver\u001b[49m\u001b[43m(\u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_init_args\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 166\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m ret\n",
"\u001b[36mFile \u001b[39m\u001b[32m~/miniconda3/envs/pycomm/lib/python3.13/site-packages/pycomm3/logix_driver.py:192\u001b[39m, in \u001b[36mLogixDriver._initialize_driver\u001b[39m\u001b[34m(self, init_tags, init_program_tags)\u001b[39m\n\u001b[32m 187\u001b[39m \u001b[38;5;28mself\u001b[39m._cfg[\u001b[33m\"\u001b[39m\u001b[33mcip_path\u001b[39m\u001b[33m\"\u001b[39m].pop(\n\u001b[32m 188\u001b[39m -\u001b[32m1\u001b[39m\n\u001b[32m 189\u001b[39m ) \u001b[38;5;66;03m# strip off backplane/0 segment, not used for these processors\u001b[39;00m\n\u001b[32m 191\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m init_tags:\n\u001b[32m--> \u001b[39m\u001b[32m192\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mget_tag_list\u001b[49m\u001b[43m(\u001b[49m\u001b[43mprogram\u001b[49m\u001b[43m=\u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43m*\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mif\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43minit_program_tags\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01melse\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m)\u001b[49m\n\u001b[32m 194\u001b[39m \u001b[38;5;28mself\u001b[39m.__log.info(\u001b[33m\"\u001b[39m\u001b[33mInitialization complete.\u001b[39m\u001b[33m\"\u001b[39m)\n",
"\u001b[36mFile \u001b[39m\u001b[32m~/miniconda3/envs/pycomm/lib/python3.13/site-packages/pycomm3/cip_driver.py:100\u001b[39m, in \u001b[36mwith_forward_open.<locals>.wrapped\u001b[39m\u001b[34m(self, *args, **kwargs)\u001b[39m\n\u001b[32m 98\u001b[39m msg = \u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mTarget did not connected. \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mfunc.\u001b[34m__name__\u001b[39m\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m will not be executed.\u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 99\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m ResponseError(msg)\n\u001b[32m--> \u001b[39m\u001b[32m100\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
"\u001b[36mFile \u001b[39m\u001b[32m~/miniconda3/envs/pycomm/lib/python3.13/site-packages/pycomm3/logix_driver.py:422\u001b[39m, in \u001b[36mLogixDriver.get_tag_list\u001b[39m\u001b[34m(self, program, cache)\u001b[39m\n\u001b[32m 420\u001b[39m \u001b[38;5;28mself\u001b[39m.__log.info(\u001b[33m\"\u001b[39m\u001b[33mStarting tag list upload...\u001b[39m\u001b[33m\"\u001b[39m)\n\u001b[32m 421\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m program == \u001b[33m\"\u001b[39m\u001b[33m*\u001b[39m\u001b[33m\"\u001b[39m:\n\u001b[32m--> \u001b[39m\u001b[32m422\u001b[39m tags = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_get_tag_list\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 423\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m prog \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m._info[\u001b[33m\"\u001b[39m\u001b[33mprograms\u001b[39m\u001b[33m\"\u001b[39m]:\n\u001b[32m 424\u001b[39m tags += \u001b[38;5;28mself\u001b[39m._get_tag_list(prog)\n",
"\u001b[36mFile \u001b[39m\u001b[32m~/miniconda3/envs/pycomm/lib/python3.13/site-packages/pycomm3/logix_driver.py:438\u001b[39m, in \u001b[36mLogixDriver._get_tag_list\u001b[39m\u001b[34m(self, program)\u001b[39m\n\u001b[32m 436\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34m_get_tag_list\u001b[39m(\u001b[38;5;28mself\u001b[39m, program=\u001b[38;5;28;01mNone\u001b[39;00m):\n\u001b[32m 437\u001b[39m \u001b[38;5;28mself\u001b[39m.__log.info(\u001b[33mf\u001b[39m\u001b[33m'\u001b[39m\u001b[33mBeginning upload of \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mprogram\u001b[38;5;250m \u001b[39m\u001b[38;5;129;01mor\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[33m\"\u001b[39m\u001b[33mcontroller\u001b[39m\u001b[33m\"\u001b[39m\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m tags...\u001b[39m\u001b[33m'\u001b[39m)\n\u001b[32m--> \u001b[39m\u001b[32m438\u001b[39m all_tags = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_get_instance_attribute_list_service\u001b[49m\u001b[43m(\u001b[49m\u001b[43mprogram\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 439\u001b[39m \u001b[38;5;28mself\u001b[39m.__log.info(\u001b[33mf\u001b[39m\u001b[33m'\u001b[39m\u001b[33mCompleted upload of \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mprogram\u001b[38;5;250m \u001b[39m\u001b[38;5;129;01mor\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[33m\"\u001b[39m\u001b[33mcontroller\u001b[39m\u001b[33m\"\u001b[39m\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m tags\u001b[39m\u001b[33m'\u001b[39m)\n\u001b[32m 440\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m._isolate_user_tags(all_tags, program)\n",
"\u001b[36mFile \u001b[39m\u001b[32m~/miniconda3/envs/pycomm/lib/python3.13/site-packages/pycomm3/logix_driver.py:511\u001b[39m, in \u001b[36mLogixDriver._get_instance_attribute_list_service\u001b[39m\u001b[34m(self, program)\u001b[39m\n\u001b[32m 508\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m tag_list\n\u001b[32m 510\u001b[39m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m err:\n\u001b[32m--> \u001b[39m\u001b[32m511\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m ResponseError(\u001b[33m\"\u001b[39m\u001b[33mfailed to get attribute list\u001b[39m\u001b[33m\"\u001b[39m) \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01merr\u001b[39;00m\n",
"\u001b[31mResponseError\u001b[39m: failed to get attribute list"
]
}
],
"outputs": [],
"source": [
"with LogixDriver(ip_address) as plc:\n",
" #info = plc.get_plc_info()\n",
" plctags = plc.get_tag_list()\n",
" #print(info)\n",
" with open('/Users/nico/Documents/GitHub/HP_InHand_IG502/code snippets/tag_dump.json', 'w') as f:\n",
" with open(path, 'w') as f:\n",
" json.dump(plc.tags_json,f, indent=4)"
]
},
@@ -103,17 +81,9 @@
},
{
"cell_type": "code",
"execution_count": 8,
"execution_count": null,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Lifetime_Flow_Meter_Gal, 67015360.0, REAL, None\n"
]
}
],
"outputs": [],
"source": [
"with LogixDriver(ip_address) as plc:\n",
" #for x in range(20):\n",