{ "info": { "author": "Patrick Fuller", "author_email": "pat@numat-tech.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "License :: OSI Approved :: GNU General Public License v2 (GPLv2)", "Natural Language :: English", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Scientific/Engineering :: Human Machine Interfaces" ], "description": "Productivity\n============\n\n##### NOTE: This is in very early stages of development.\n\nPython \u22653.5 driver and command-line tool for [AutomationDirect Productivity Series PLCs](https://www.automationdirect.com/adc/overview/catalog/programmable_controllers/productivity_series_controllers).\n\n

\n \n

\n\nInstallation\n============\n\n```\npip install productivity\n```\n\nUsage\n=====\n\n### PLC Configuration\n\nThis driver uses Modbus TCP/IP for communication. Unlike the ClickPLC, modbus\naddresses need to be manually configured in the Productivity PLC firmware (see\n[manual](https://cdn.automationdirect.com/static/manuals/p2userm/p2userm.pdf)).\n\nTo use this driver, go to `Write Program \u2192 Tag Database`, scroll down to the values\nyou care about, and double click the `Mod Start` cell of each value to assign an address.\nThen, go to `File \u2192 Export \u2192 Tags` to export a csv file. The file is used here so\nyou don't need to remember the addresses.\n\n### Command Line\n\nTo print the tags and their values, simply call the library with the PLC IP address and \nthe tags file.\n```\n$ productivity the-plc-ip-address path/to/tags.csv\n```\n\nUse --set to set values on the PLC:\n```\n$ productivity the-plc-ip-address path/to/tags.csv -s \"{int_test: 4, float_test: 4.45, string_test: foo}\"\n```\nThe --set parameter takes [YAML](https://learnxinyminutes.com/docs/yaml/), a simple data format that allows you to easily set multiple tags at once.\n\nSee `productivity --help` for more.\n\n### Python\n\nThis driver uses Python \u22653.5's async/await syntax to asynchronously communicate with\na ClickPLC. For example:\n\n```python\nimport asyncio\nfrom productivity import ProductivityPLC\n\nasync def run():\n async with ProductivityPLC('the-plc-ip-address', 'path/to/tags.csv') as plc:\n print(await plc.get())\n\nasyncio.run(run())\n```\n\nIt is also possible to set tag values:\n```python\nasync def run():\n async with ProductivityPLC('the-plc-ip-address', 'path/to/tags.csv') as plc:\n await plc.set(start=True, setpoint=1.1)\n\nasyncio.run(run())\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/numat/productivity/", "keywords": "", "license": "GPLv2", "maintainer": "", "maintainer_email": "", "name": "productivity", "package_url": "https://pypi.org/project/productivity/", "platform": "", "project_url": "https://pypi.org/project/productivity/", "project_urls": { "Homepage": "http://github.com/numat/productivity/" }, "release_url": "https://pypi.org/project/productivity/0.3.5/", "requires_dist": [ "pymodbus (==2.2.0rc1)", "PyYAML (==5.1)" ], "requires_python": "", "summary": "Python driver for AutomationDirect Productivity Series PLCs.", "version": "0.3.5" }, "last_serial": 5972669, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "c7f30a7203b527f4e2878d58c8225a3d", "sha256": "d529884278bd1030869940cdef0480d9622095454c25471e167a72fe4967df67" }, "downloads": -1, "filename": "productivity-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c7f30a7203b527f4e2878d58c8225a3d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12865, "upload_time": "2019-08-08T18:35:21", "url": "https://files.pythonhosted.org/packages/33/e4/5b7a09cc8ea68fa687df01124514d323c0193fe3bc950395886d379ee161/productivity-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0a748a45da021b96caf8a11086ee72ff", "sha256": "6611358705e7a1888d62d907fee69e3e46c55bfae4f3ddf7fedbdc042fa6460f" }, "downloads": -1, "filename": "productivity-0.1.0.tar.gz", "has_sig": false, "md5_digest": "0a748a45da021b96caf8a11086ee72ff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4929, "upload_time": "2019-08-08T18:35:23", "url": "https://files.pythonhosted.org/packages/76/98/76dca8d6c16c06c0672ab83a0f568737a058aa56a3fe6f551b408360d037/productivity-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "bb464f96c0b04f45de872b156bacc478", "sha256": "645ac30263aa7d182a8630c2a37cdb43eb532e89a26a22a7e1574133c913f5fb" }, "downloads": -1, "filename": "productivity-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bb464f96c0b04f45de872b156bacc478", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14279, "upload_time": "2019-08-30T21:07:54", "url": "https://files.pythonhosted.org/packages/c1/f3/7ff921206d09b65e4430b974f76e8b0c04fbe9a1cac72f4cd1d7d5b0305f/productivity-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b4380d4b796740eae732c097d0b940f6", "sha256": "5dabc33f708d09eb0c5978c6179cdbe06df8beaf02399dcbd620cc76b97f2886" }, "downloads": -1, "filename": "productivity-0.2.0.tar.gz", "has_sig": false, "md5_digest": "b4380d4b796740eae732c097d0b940f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6209, "upload_time": "2019-08-30T21:07:55", "url": "https://files.pythonhosted.org/packages/64/dd/b632e41b4b3829cca1da384ab131c750e32d17317e73920c6d33c6be1ad4/productivity-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "43c79ffafd885ad3ab6284e5d27851ef", "sha256": "4319aec2d9ff11cf1b9cef8efc19b4debb98940508673bc27b484b19ed4bce36" }, "downloads": -1, "filename": "productivity-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "43c79ffafd885ad3ab6284e5d27851ef", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15069, "upload_time": "2019-09-11T21:37:20", "url": "https://files.pythonhosted.org/packages/21/ac/dd83451e67bee663cbce5d85fa120b92ae088c60c7008c4388ca0463b761/productivity-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "74a53b7bac389ab60b0ed68a8a4041be", "sha256": "8f669a97714e12e7379d8897c8ba623b5cfbbd49a372a3790f563424d4b1599c" }, "downloads": -1, "filename": "productivity-0.2.1.tar.gz", "has_sig": false, "md5_digest": "74a53b7bac389ab60b0ed68a8a4041be", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6923, "upload_time": "2019-09-11T21:37:22", "url": "https://files.pythonhosted.org/packages/94/ed/c78f2bddfb9bb97b0a11d27627c9f89b76c1f8cdbe67a615d848c584f9d0/productivity-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "eddaaaf9a6b0676015373d1c908aaf00", "sha256": "ad8180efdfac01db9a4daffecd7a50ba7fdf3c538f839cc999581cd0d05238f6" }, "downloads": -1, "filename": "productivity-0.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "eddaaaf9a6b0676015373d1c908aaf00", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15071, "upload_time": "2019-09-11T22:22:08", "url": "https://files.pythonhosted.org/packages/90/09/29f071c509ad46a381b26255be806094699e977e5f2a1adc33b0379388e5/productivity-0.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5d491be4a5d6ed8ba21a6090499ba188", "sha256": "8a49b441d06b833603d2d1d27b29915ba214ab6f045324f8eeaccfdd63d92554" }, "downloads": -1, "filename": "productivity-0.2.2.tar.gz", "has_sig": false, "md5_digest": "5d491be4a5d6ed8ba21a6090499ba188", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6922, "upload_time": "2019-09-11T22:22:10", "url": "https://files.pythonhosted.org/packages/b0/6b/95bea38a411c57717df1e6779e5afcda857303a8d0123c78be1deed810fd/productivity-0.2.2.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "b3e36057946b68258db9e1cb8e4617e5", "sha256": "6673e24d282d1cb467d4b3cf9aac92a4afbd1e938ca16ae4fee2ef655f0f14fb" }, "downloads": -1, "filename": "productivity-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b3e36057946b68258db9e1cb8e4617e5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15355, "upload_time": "2019-09-24T21:36:27", "url": "https://files.pythonhosted.org/packages/fc/36/de5fbf07beead4a406340718a99062f580ab02d7f6f93db2b6d181c27556/productivity-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9355709a2d55d93fb15cf4d0d8345773", "sha256": "15d7aa23dd0554345614046dec03bc9faaf07369ff674e2b454fffd2107a3565" }, "downloads": -1, "filename": "productivity-0.3.0.tar.gz", "has_sig": false, "md5_digest": "9355709a2d55d93fb15cf4d0d8345773", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7214, "upload_time": "2019-09-24T21:36:29", "url": "https://files.pythonhosted.org/packages/25/2d/2d9f5da918a538e8d292bcf9e1d4f7c2ae0684b796d17fc5860df84e27e7/productivity-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "a479b9e29bf5d17abcb50121ac88326f", "sha256": "e5970636d77e9235f367930ef5a3135bd646a06d783b9b420824323d23f575cb" }, "downloads": -1, "filename": "productivity-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a479b9e29bf5d17abcb50121ac88326f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15356, "upload_time": "2019-09-25T14:30:12", "url": "https://files.pythonhosted.org/packages/be/5e/62fc988e552d488e8421cbc94432f70f3c7395972bc8edf6706c93abda9e/productivity-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6541f87233faa9c4b19aec6f787edb55", "sha256": "3b963438fbf5e9f2233c74e16bd8013dcd411e62db80c1b439d6c7fd3600c29b" }, "downloads": -1, "filename": "productivity-0.3.1.tar.gz", "has_sig": false, "md5_digest": "6541f87233faa9c4b19aec6f787edb55", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7236, "upload_time": "2019-09-25T14:30:15", "url": "https://files.pythonhosted.org/packages/f1/76/43d3b3b19b2400c3d8586db7c0ebc9de4e9bf6757964bff22c33de1119d4/productivity-0.3.1.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "db0d127670eb88f01f279f8467226cf1", "sha256": "9a5303d092c1a182641d01aedeeaa759744114006c3f44f22c21c69e150f64b8" }, "downloads": -1, "filename": "productivity-0.3.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "db0d127670eb88f01f279f8467226cf1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16065, "upload_time": "2019-09-27T20:40:34", "url": "https://files.pythonhosted.org/packages/ce/ac/d20f7a84f273d73a3d7ab488da98573dd2ac93420f18652f9afeb81f3a38/productivity-0.3.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "37650904bd837c80c7467f940b563d42", "sha256": "7301419bc50d2d7a2ff47db5abbd377ee05ccdb5571f398207ffdc0b96fe012c" }, "downloads": -1, "filename": "productivity-0.3.3.tar.gz", "has_sig": false, "md5_digest": "37650904bd837c80c7467f940b563d42", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7924, "upload_time": "2019-09-27T20:40:36", "url": "https://files.pythonhosted.org/packages/eb/50/1be07558ac7892bcb5123ac3013e7bf7f91334fd5fea45683c52df0a0ed8/productivity-0.3.3.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "8f48956ecd43ae30beb84106ef90c72b", "sha256": "224f4867fe51b390f767949c8da35eb482c301213764620e44224dbb1d80ac8a" }, "downloads": -1, "filename": "productivity-0.3.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8f48956ecd43ae30beb84106ef90c72b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16078, "upload_time": "2019-10-01T14:41:28", "url": "https://files.pythonhosted.org/packages/e7/f9/4b83befe4fd257bfa2a9d031cde0db436e455958efc8d0474bde31fcefed/productivity-0.3.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f9030943de34006d8bc15ba8e3511180", "sha256": "112e17dbbf2db1fe346397bf3664b618c1b7d5aed5d491eb03ce6675d9e905e6" }, "downloads": -1, "filename": "productivity-0.3.4.tar.gz", "has_sig": false, "md5_digest": "f9030943de34006d8bc15ba8e3511180", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7960, "upload_time": "2019-10-01T14:41:30", "url": "https://files.pythonhosted.org/packages/73/fe/2e407ab8921737c8406245eeba6e28b8512a755d8ad14d235ca0d173350d/productivity-0.3.4.tar.gz" } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "332cbeab54d89f78dbf54b2ae988db94", "sha256": "3b71be1fdf46062b05247a27db1af3a63a0471742e8c1c7ef0e487fbc8945ff2" }, "downloads": -1, "filename": "productivity-0.3.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "332cbeab54d89f78dbf54b2ae988db94", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16071, "upload_time": "2019-10-14T18:14:19", "url": "https://files.pythonhosted.org/packages/0f/34/dd6a959d0f7320e54a3b4eb1590d882b2dda12b01bb1df2162649d8e9955/productivity-0.3.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "62f72100935e4d41aaedefe9ea748e25", "sha256": "01f87d6a8ad6f8da0747fcd59b3723d07cf7ab8b1a57fe91b0ffc6f265b0c6c7" }, "downloads": -1, "filename": "productivity-0.3.5.tar.gz", "has_sig": false, "md5_digest": "62f72100935e4d41aaedefe9ea748e25", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7950, "upload_time": "2019-10-14T18:14:21", "url": "https://files.pythonhosted.org/packages/3f/ab/1d178f23fab274b23b6cb066558a913427e50e1ddbb915980f260cd0a443/productivity-0.3.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "332cbeab54d89f78dbf54b2ae988db94", "sha256": "3b71be1fdf46062b05247a27db1af3a63a0471742e8c1c7ef0e487fbc8945ff2" }, "downloads": -1, "filename": "productivity-0.3.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "332cbeab54d89f78dbf54b2ae988db94", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16071, "upload_time": "2019-10-14T18:14:19", "url": "https://files.pythonhosted.org/packages/0f/34/dd6a959d0f7320e54a3b4eb1590d882b2dda12b01bb1df2162649d8e9955/productivity-0.3.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "62f72100935e4d41aaedefe9ea748e25", "sha256": "01f87d6a8ad6f8da0747fcd59b3723d07cf7ab8b1a57fe91b0ffc6f265b0c6c7" }, "downloads": -1, "filename": "productivity-0.3.5.tar.gz", "has_sig": false, "md5_digest": "62f72100935e4d41aaedefe9ea748e25", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7950, "upload_time": "2019-10-14T18:14:21", "url": "https://files.pythonhosted.org/packages/3f/ab/1d178f23fab274b23b6cb066558a913427e50e1ddbb915980f260cd0a443/productivity-0.3.5.tar.gz" } ] }