Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
/ CodeSys Public
forked from 18thCentury/CodeSys

import/exports ST to text, burn&login, extract, module dectect, proof and modification-assistant

License

Notifications You must be signed in to change notification settings

e71828/CodeSys

Repository files navigation

CodeSys

使用方法:

若想在工具栏使用图标运行 脚本,请参考 executing_scripts_toolbar 和利用相关文件 Script Commands

在 CodeSys 软件内执行脚本。

  1. 菜单执行 run_script.png

export.py:

  1. 选择脚本 sel_script_ex
  2. 选择要导出的代码(目录),留空为整个目录 sel_files_dir
  3. 选择文件夹(导出到) sel_folder_ex
  4. 文件夹非空提示,是否删除其中的文件 tip_export
  5. 结果信息 succ_export

load.py:

  1. 选择脚本 sel_script_im
  2. 选择文件夹(从导入) sel_folder_im
  3. 结果信息 succ_load

脚本说明:

export.py:

  • 将 Codesys 内的 ST 语言的文本代码 和 Global_var, Textlist 和 Task_Configuration, library 备份到 Save_Folder 文件夹。
  • 将指定的文件夹内的 文本代码 备份到 Save_Folder 文件夹,不指定则为工况全部的文本代码。
  • 若导出某个文件夹,则包括其子文件夹。
  • 若 Save_Folder 文件夹 非空,则提示要删除其中文件,但不包括 .git.svn 文件。
  • 如果文件夹内存在 .git 文件,则将文件夹更新到 HEAD 。

load.py:

  • 将上述文件夹内文本代码的导入到当前工程。
  • 设备文件夹/文件导入。
  • 支持 pou 增加的 Method支持 Action
  • 支持 pouProperty ,支持 Property Method

advanced/Burn&Login.py:

  • 一键化编译、另存为、烧录(登录)、开始 Run (F5)。
  • 使用该脚本时:先编译当前程序,若有错误直接退出脚本,后续不再执行。
  • 使用该脚本时:当前程序版本信息中的主版本不变、次版本不变、生成号加 1 、修订号不变;同时添加作者信息。
  • 使用该脚本时:当前程序另存为 Burned-on-"%Y%m%d-%H%M%S".project ,删除程序密码;若当前程序已经是 Burned-on-"%Y%m%d-%H%M%S".project ,则不操作另存为,仅修改版本信息。
  • 使用该脚本后:Burned-on-"%Y%m%d-%H%M%S".project 为只读,因为其 released 被设置为 True 。(因为文件的只读属性在云同步时会丢失,所以通过设置 released 保持该文件只读,且可云同步)。
  • 使用该脚本后:Burned-on-"%Y%m%d-%H%M%S".projectDescription 设置为 Only for recording diff between all versions
  • 使用该脚本后:对 Burned-on-"%Y%m%d-%H%M%S".project 自动执行烧录,烧录后自动开始 Run ,即按下 F5

Assistive Intelligence/assist_en.ahk:

  • Require: Codesys 设置语言为 English , 依赖软件 AutoHotkey v2.0
  • 另开文件,适配中文窗口 Assistive Intelligence/assist_chs.ahk:
  • 根据现有规则,自动输入密码,但不点击确认。
  • 打开 project 后,自动关闭 Environment 界面。
  • 绑定热键,在 Codesys 中按下 = 键,输入 :=
  • 绑定热键,在 Codesys 中按下 Alt + = 键,输入 =
  • 绑定热键,在 Codesys 中按下 PgDn 开启碎片化修改提示(已开启则提示下一步),需要事先自己将差异模板化、步骤化。
  • 绑定热键,在 Codesys 中按下 PgUp 提示碎片化修改上一步。
  • 绑定热键,在 Codesys 中按下 Pause 临时关闭碎片化修改提示。
  • 绑定热键,在 Codesys 中连按两下 Pause 重置提示,从第一步开始。
  • 绑定热键,在 Codesys 中按下 ` 若某一个步有细节步骤,则将细节步骤的关键词送至 Ctrl + F,自动点击搜索下一个,若没找到则自动关闭弹窗,若找到将返回界面光标处。
  • 绑定热键,在 Codesys 中按下 ` 若某一个步有多个细节步骤,每次按下则将下一个关键词送至 Ctrl + F,到最后一个细节步骤时再次按下则循环至第一个关键词。

advanced/module_detection.py:

  • 模块检测,依赖文件夹名或文件内的关键词。支持 Codesys 中给出结果。
  • 使用 module_detect.ps1 ,在终端内批量检测并输出结果至 csv

advanced/extract_archive.py:

  • 批量将存档文件解压到指定文件夹。
  • 不支持 Codesys 中运行。
  • 依赖于 extract_archive.ps1 批量运行。

advanced/overwrite.py:

  • 文件重写,依赖文件夹名或文件内的关键词,同名文件只处理第一个。支持 Codesys 中给出结果。
  • 弹窗询问若有同名文件(界面执行时),终端仍然默认只有一个且选第一个。
  • 使用 overwrite.ps1 ,在终端内批量写入所有子目录工程的同一个文件并输出结果至 csv

云同步:

  • push: rsync -avc --exclude='.*' --exclude='__pycache__/' --exclude='venv/' --exclude='程序-e71828/' ./ ~/OneDrive/13ANH/PycharmProjects/CodeSys/
  • pull: rsync -avc --exclude='.*' --exclude='__pycache__/' --exclude='程序分发-Force/' --exclude='Clean-Folder.ps1' --exclude='.stignore' --exclude='venv/' ~/OneDrive/13ANH/PycharmProjects/CodeSys/ ./

syncthing 同步:

  • .stignore:
// 肯定规则,过滤 codesys 辅助文件
#include codesys-patterns.txt

问题:

  • 除ST语言的文本外,其他如: Visu,imagePool, VisuConfiguration, Project Settings, Project Infomation 没有导出.
  • GlobalTextList 会丢失 ID Column 的数据.

致谢:

About

import/exports ST to text, burn&login, extract, module dectect, proof and modification-assistant

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 65.2%
  • AutoHotkey 26.5%
  • PowerShell 8.3%

AltStyle によって変換されたページ (->オリジナル) /