bcs-engineering-dsl
v0.0.25
Published
A Building Control System engineering language
Readme
BCS Engineering DSL
1 Publishing
1.1 Install Dependencies
npm install1.2 Build
npm run langium:generate && npm run build1.3 Generate Extension
Before generating the extension, make sure to run the build commands first.
vsce package1.4 Publish CLI
NOTE: Previous versions have been published under the name bcs-engineering-dsl on my personal npm account. To avoid confusion, you might want to publish under a different name.
npm login
npm publish --access public2 Installation
2.1 Install VS Code Extension
Right click on the bcs-engineering-dsl-<version>.vsix file and select Install Extension VSIX.
2.2 Install the CLI:
npm install -g bcs-engineering-dslor link the local version
npm link3 Usage
3.1 Generate Code
bcs-engineering-cli beckhoff generate <path-to-bcsctrl-file>3.2 Generate Code and Deploy
bcs-engineering-cli beckhoff deploy <path-to-bcsctrl-file>NOTE: The working directory will be set to the root of the provided file. This means that the .bcsctrl file can contain cross-references to other files in the same directory.
3.3 Supported Target Platforms
Currently the following target platforms are supported:
3.3.1 Beckhoff
In addition to the standard libraries provided by Beckhoff, the following libraries are supported:
Tc3_DALI: Please note that this library integration is not fully tested.
4 Future Work
- Add support for more target platforms (e.g., Siemens, Codesys)
- Add and test support for more bus systems (e.g., EtherCAT, Profinet)
- Add a more sophisticated module system (e.g., support multiple files, packages, imports, etc.)
- Support structs of structs
- Support not only statefull FBs, but also stateless functions
- Support FB properties (besides inputs, outputs, locals, and logic)
- Support better scoping e.g. true block scoping for variables
- Support UseStmt within FB logic
- Look into debugging DSLs
- Look into moving the framework to a web-based solution (both the DSL and the deployment tool)
- Look into graphical modeling
