贝加莱培训笔记1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
11-4日 内容
上午主要讲新建工程添加模块设定IP
下午讲一些变量相关的东西
PLC 和电脑连接后,打开下面的网址可以查看PLC 信息,前面的IP 地址修改成实际的PLC 地址。
关于冷启动和热启动
热启动:1上电,2更改系统配置并且传输到目标系统,3Automation studio 点击了热启动按钮(断电再上电操作属于热启动)。
冷启动:1更换CF 后启动,2擦除userrom 后启动,3automaiton studio 点击了冷启动按钮,4重启时掉电保持缓存区出错(电池没电了)。
冷启动和热启动区别:
Dram 不论冷启动和热启动都丢失数据。
取地址
常量,命名时
建议全部大写
注释
USERRAM 热启动数据不丢失,冷启动丢失。
REMRAM 冷启动和热启动都不丢失。
关于将变量保存至REMRAM的方法:
1 双击Global.var 新建一个变量gVarTest
2 选中Retain复选框
3 点一下x20cp1485 再点open 点permanent variables
4 将这个变量增加到这里
5 点击OPEN 点configuration
6 按照下图将方框内的值改大
关于任务优先级,排在上面的优先级最高,并且可以中断低优先级的任务
如果有多个任务在同一个cycle #x 里面,那么上电时,先执行所有程序的INIT部分,再执行cycle部分(循环部分),排在上面的先执行。
优先级最高
优先级最低
8个优先级可以删除,但不能增加。
代码分为3个阶段,初始化段,循环段,退出段;其中初始化段仅上电时执行一次。
循环时间的基准时间
例如,想400us执行某个循环,那么这里必须设置成400
循环1设置400us循环一次。
Epl上右击,点configuration,cycle time 可以更改通信循环时间
点一下程序,点open 点watch 可以监控变量
强制IO输出1
在IOmapping界面,点击放大镜按钮,勾上force,force value设置输出状态
Trace里面可以监控8个变量
Profiler可以查看任务时间
1 在程序上右击点open 点profiler
2 设置15000
3点install按钮
4点stop按钮
5 点upload data object按钮
即可查看程序的平均执行时间
帮助这里列出了一些函数,可能会在分析波形哪里用的到
11.5日
梯形图培训
插入一个梯形图程序
主要讲跳转返回,不写了。
St语言培训
也没什么东西,主要讲下怎么调用库
下面的两段代码实现按键1s钟点亮一个灯,效果一样,写法不一样。
Ton_10ms模块10ms调用一次100次就是1s
下面讲用st语言做一个自己的库
右击library点add object出现的对话框点new library
下面的界面,除了c开发之外都选择IEC
下图:
Function 意思是函数,对应只有一个输出 Function block 可以有多个输出 Language 选择创建功能块的语言
常量
数据类型
函数接口
点finish
出现了UserFB.st文件
双击*.fun文件,创建3个输入,2个输出
写个程序,这个功能块实现找出三个变量中的最大值和最小值双击*.st文件编写代码如下:
创建完成之后,在程序中调用这个功能块
选中*.st文件,可以右击点属性,按照下图设置可以对这个st文件加密,这样别人就看不到你编写的代码了。
打开watch界面,查看变量(最大值和最小值都是正确的)
点击AnLibrary点击file点击export library导出库
11.06日
新建一个c语言项目
右击点addlibrary->program->new program输入程序名等,不在详述
创建变量的方法:2种,一种是在*.var文件中定义(很简单,不在详述),另一种按照下图操作
C语言创建变量
这样创建变量必须设定一下,下图中enable declaration 要勾上
局部变量只能在本文件中使用,全局变量可以在其它地方使用。
如果一个全局变量需要在其它c文件中使用,那么其它的c文件必须重新声明一下(不是用extern 声明,直接复制
过去即可)
在一个程序cProgram里面声明一个全局变量,在循环体中自加。
再添加一个程序,cProgram2,程序内容如下
Program2要使用这个变量,就必须再声明一次,和program一样,虽然在各自的文件中都声明了,但是这是一个变量,他们的地址是一样的
在watch窗口中可以看到这个变量一直为0
如果在c文件中声明的全局变量,可以在其它文件中直接使用,例如ST文件。
只有在c文件中才需要重新声明。
在一个程序中如何添加一个新的c文件(类似于function)
右击点add object 点file 点new file
输入文件名和选择文件类型
打开这个文件编写函数
在其它地方直接调用即可,无需编写头文件
如何调用自带的功能块
光标点击要插入功能块的地方,点击FB按钮
在弹出的对话框输入关键字搜索
选择CTU模块后,点击OK按钮出现如下的对话框,补全信息后
编写完成代码后如图所示
需要在*.var 文件中声明,注意类型选择CTU
这样就可以编译通过了。
除了在*.var文件中声明外,也可以这样声明
如何定义一个数组
在*.var文件中,定义一个变量,点下图中的按钮
在下图中,输入数组的大小,这里为10
这样就可以了。
给这个数组内存区初始化为0,在init函数段写上
声明结构体
打开global.typ 打开全局的
按照下图定义一个结构体,其中点下图中的按钮,可以改变name的大小,在length输入新的长度即可
在程序中用这个结构体声明一个变量
打开*.var文件,声明一个stud_1的结构变量,点省略号按钮修改此变量的类型为studentinfo_typ
点开省略号之后,按照下图来操作
定义完变量之后点击下图中的按钮,可以设定初值
在程序中给std_赋值,下图给出了监控结果。
结构体指针操作
首先定义一个结构体数组和一个结构体指针打开*.var文件
编写代码和执行结果如下:
未完待续
交流邮箱shijie.an# 将#换成@。