151 查询当前用户自己有多少张表 user_tables (user_xxx,all_xxx,dba_xxx )
select table_name from user_tables;
152 查询当前用户可以访问的所有表 all_tables (user_xxx,all_xxx,dba_xxx ) (别人授 权访问的表)
select table_name from all_tables; 这个数量 一定比 user_tables 的数量
153 dba_tables, 显示所有方案拥有的数据库表,但是查询这种数据库字典视图,要求用户 必须用dba角色和select any table 系统权限
154 oracle 9i 真个数据库中有695张表 oralce 11个有 2500张左右
155 oracle 用户所拥有的权限和角色都存放在数据库字典中
156 查询数据库中所有用户的详细信息
select * from dba_users;
157 查询当前用户具有的系统权限
select * from dba_sys_privs where grantee='SYSTEM';
select * from role_sys_privs where role='SYSTEM';
158 查询当前用户具有的对象权限
select * from dba_tab_privs where grantee='SYSTEM';
159 查询当前用户具有的列权限
select * from dba_col_privs where grantee='SYSTEM';
160 查询用户具有的 角色
select * from dba_role_privs where grantee='SCOTT';
161 查询数据库系统中有多少角色
select count(*) from dba_roles; ---51 11.1版本 --25 9i
162 查询用户 SCOTT 所拥有的系统权限
select * from dba_sys_privs where grantee in (select granted_role from dba_role_privs where grantee='SCOTT');
163 查询oralce的系统权限 有多少种
select * from system_privilege_map; --11.1 [ 206 ] 9i [ 140 ]
164 查询oracle的对象权限
select * from dba_tab_privs; -- 11.1 [31520]
165 查询表空间
select tablespace_name from dba_tablespaces;
166 显示当前用户可以查看的所有数据字典视图
select * from dict where comments like ‘%grant%’
167 显示当前数据库的全称
select * from global_name;
168 sqlplusw 清屏 命令是 clear screen; PL/SQL ,sqlplus 清屏 是 clear
169 动态性能视图:用于记录当前例程的活动信息。
当启动oracle service时 系统会建立动态性能试图;
当停止oracle service的时候,系统会删除动态性能视图 ;
ORACLE 的所有动态性能视图都是以 v_$开始的,并且oracle为每个动态性能视图都提供了相应的同义词,并且同义词都是以V$开始的。
例如 v_$datafile 的同义词是v$datafile;
动态性能的所有者是sys,一般情况下,由dba和特权用户来查询动态性能视图。
170 管理表空间和数据文件
表空间:是数据库的逻辑组成部分。
从物理上讲,数据库数据存放在数据文件中;
从逻辑上讲,数据库是存放在表空间中,表空间由一个或者多个数据文件组成。
171 oracle 的逻辑结构包含 表 空间 段 区 块
数据库是由表空间构成,表空间又是有段构成,段是由区构成,区是由 oracle的块构成,这样做是为了提高数据库的效率,
作用
1.和控制数据库占用的磁盘空间
2.dba 可以将不同数据类型部署到不同的位置,这样 有利于i/0的性能,同时利于备份和恢复等管理
172 创建表空间采用create tablespace命令完成,需要注意的是一般情况下,建立表空间,是特权用户和dba来执行的。如果其他用户要创建必须要有 create tablespace 的系统权限
crate tablesapce data01 datafile 'd:\test\data01.dbf' size 20m uniform size 128k;
说明:创建一个名称为 data01 的表空间,并为该表空间建立一个名称为data.01.dbf的数据文件,区的大小为128k,
使用的时候是
create table mydept(deptno number(4),dname varchar2(14),loc varchar2(13)) tablespace data01; (如果不指定表空间,就默认放在 SYSTEM 表空间下);
create table emp(empno,ename) tablespace data01 as select empno,ename from scott.emp;
173 改变表空间的状态
当建立表空间的时候,表空间处于联机的(online)状态,此时表空间是可以访问的,并且是可以读写,既可以在表空间上执行各种语句。
但是在进行系统维护活数据维护的时候,可能需要改变表空间的状态。 一般由特权用户和dba来操作
1.使表空间脱机
alter tablespace 表空间名 offline;
2.使表空间联机
alter tablespace 表空间名 online;
3.只读表空间
当建立表空间时,表空间可以读写,如果不希望在表空间上执行update ,delete ,insert 操作,那么可以将表空间修改为只读
alter tablespace 表空间 read only;
4.改为只读后,边回来成读写
alter tablespace tbs001 read write;
174 显示表空间中的所有表
select * from user_tables where TABLESPACE_NAME='DATA01'; (大写)
175 知道表名,查看该表属于那个表空间 (大写)
select tablespace_name,table_name from user_tables where table_name='EMP';
176 删除表空间的名字 (dba 或者特权用户)
drop tablespace DATA01 including contents and datafiles;
说明: including contents 表示删除表空间时候,删除该表空间的所有数据对象,而datafiles 表示将数据库文件也删除。
177 扩展表空间 oralce 有3中方法
1.添加数据文件 alter tablespace TBS001 add datafile 'd:\tbs002.dbf' size 20m;
2.增加数据文件的大小 alter database datafile 'd:\tbs001.dbf' resize 20m;
3.设置自动增长 alter database datafile 'd:\tbs002.dbf' autoextend on next 10m maxsize 500m;
178 移动数据文件(处理磁盘损坏的时候,将数据文件进行迁移)
1.找出数据文件对应的 表空间
select tablespace_name from dba_data_files where file_name='D:\TBS001.DBF';
2.使表空间脱机 确保数据文件的一致性
alter tablespacce tbs001 offline;
3.使用命令移动数据文件到指定的目标位置 (PL/Sql中不能成功,sqlplus中能成功)
host move d:\tbs001.dbf c:\tbs001.dbf;
4.修改表空间对应的数据文体 为新磁盘下的数据文件
alter tablespace TBS001 rename datafile 'D:\TBS001.DBF' to 'E:\TBS001.DBF';
5.使表空间联机
alter tablespace TBS001 online;
179 查询表空间的信息(dba_tablespaces);
select * from dba_tablespaces;
180 查询表空间的所有的数据文件(dba_data_files)
select file_name,bytes from dba_data_files where tablesapce_name='TBS001';
181 表空间的状态
offline,online, read only, read write;
182 其他常用的表空间
索引表空间
undo表空间
临时表空间
非标准块的表空间
183 数据的完整性用户确保数据库数据遵从一定的商业和逻辑规则,在oralce中可用 以下三种
1.使用约束(5) not null ,unique ,primary key ,foreign key,check
2.使用触发器
3.使用 应用程序(过程,函数)
184 一个表中只能有一个主键,但是可以有多一个 unique 约束
185 添加 非空约束
alter table goods modify goodsName not null;
186 添加唯一约束
alter table customer add constraint card_unique unique(cardId);
187 添加check约束
alter table customer add constraint address_check check(address in('东城'),'西城','崇明');
189 添加范围限制约束
alter table customer add constraint nums_check check(nums between 1 and 30);
190 删除约束
alter table customer drop constraint 'nums_check';
191 删除主键约束的时候 可能会报错 (如果存在主外键关系)
alter table customer drop primary key 【cascade】; 表示也删除级联的关系
192 查询某个表的约束信息 (通过查询数据库字典视图user_constraints)
select constraint_name,constraint_type,status,validated from user_constraints where table_name='CUSTOMER';
193 根据约束名称查询约束的列 user_constrants
select column_name,position from user_cons_colums where constraint_name='约束名';
193 查询某个表的约束详细信息 user_cons_columns
select cn.constraint_name,cn.constraint_type,cc.column_name,cc.position,cn.status,cn.validated from user_cons_columns cc,(select constraint_name,constraint_type,status,validated from user_constraints where table_name='CUSTOMER') cn where cc.constraint_name=cn.constraint_name;
select cs.constraint_name,cs.constraint_type,cs.validated,cc.column_name,cc.position from user_cons_columns cc,user_constraints cs where cs.constraint_name=cc.constraint_name and cs.table_name='CUSTOMER';
194 列级定义 :指在定义列同时 定义约束
create table department4( dept_id number(2) constraint pk_department primary key,
name varchar2(12),
loc varchar2(12));
195 表级定义:定义所有的列后,再定义约束
create table employee2( emp_id number(4),name varchar2(15),dept_id number(2),constraint pk_employee primary key(emp_id),
constraint fk_department foreign key (dept_id) references department4(dept_id));
196 索引:用于加速数据存储的数据对象,合理的使用索引可以大大降低I/O次数,从而提高数据的访问 性能,索引有很多种
197 索引的维护,指的是数据库中添加或者删除了数据,索引都需要进行对应的改变
198 单列索引:基于单个列建立的索引
create index 索引名 on 表名(列名);
199 复合索引:基于两列或者是多列的索引,在同一张表上可以有多个索引,要求列的组合必须不同。
create index emp_idx1 on emp(ename,job);
create index emp_idx2 on emp(job,ename);
200 sql语句扫描是从后面往前面,所以在写sql语句的时候要将能偶筛选出很多数据的条件放在后面。(条件越苛刻的越放在后面,主要是在利用索引的时候能)
201 使用原则
1.在大表上建立索引才有意义(否则浪费空间)
2.在where 子句或者连接条件上经常引用列上建立索引
3.索引的层次不要超过4层
202 索引的缺点
1.建立索引,系统要占用大约为表的1.2倍的硬盘和内存空间来保存索引
2.跟新数据的时候,系统必须要有额外的时间来同时对索引进行更新,一维持数据和索引的一致性
3.实践表明,不恰当的索引不但于事无补,反而会大大降低系统的性能。因为大量的索引在进行插入,修改和删除的操作是比没有索引花费更多的系统时间。
4.不宜在很少和不引用的字段上建立索引
5.不宜在 逻辑型字段上建立索引,如男或女(是或否)等。
6.索引是消耗一定的系统资源为代价的,索引不能盲目的建立,这是考研一个DBA是否优秀的很重要的指标
203 索引的分类
1 数据的存储方式:B *树,反向索引,位图索引
2.按照列的个数分类:单列,复合索引
3.列的唯一性:唯一索引 ,非唯一索引
4.此外还有,函数索引,全局索引,分区索引...
B*树索引建立在重复值很少的列上,而位图索引则建立在重复置很多,不同值相对固定的列上。
204 显示表的所用索引 dba_indexes(数据库的所有索引) 和 user_indexes(当前用户的索引) 这些都是 数据库字典视图
select index_name,index_type from user_indexes where table_name="表名";
205 显示索引列的信息 (user_ind_columns)
select table_name,column_name from user_ind_columns where index_name='IND_ENAME';
206 查询一个表的索引的详细信息
select ic.table_name,ic.column_name,i.index_name,i.index_type from user_indexes i,user_ind_columns ic where i.index_name=ic.index_name and ic.table_name='CUSTOMER';
207 oracle的角色是为了简化权限的管理
208 create table :权限表示可以在自己的方案中建表
create any table : 表示可以在任何方案中建表
create session: 连接数据库
create view:建视图
create procedure: 建过程
create cluster:建簇
create public synonym: 建同义词
create trigger:触发器
select * from system_privilege_map; --查询显示所有的系统权限
209 授予权限(一般是dba完成)
其他用户来授予系统权限必须要有grant any privilege 【with admin option】--表示遗传性
210 一个表对象上的权限 包括
alter 修改表结构
delete select insert upate index references execute
211 显示对象权限(dba_tab_privs)
包含 用户或者角色具有的对象权限
212 授予对象权限
指定修改某列 grant update on emp(sal) to luob;
只能查询这指定字段 grant select on emp(ename,sal) to luob;
213 授予alter权限
可以对表的结构进行修改 grant alter on emp to luob;
214 授予 execute 权限(用于用户执行其他方案的包、过程,函数)
grant execute on dbms_transaction to luob; --执行 dbms_transaction 包
215 如果想让luob可以在 scott.emp 上建立索引
grant index on scott.emp to luob with grant option;
216 系统权限不是级联回收
对象权限是级联回收的
217 介绍常用的预定角色 connect ,resource,dba
connect 具有一般开发人员的大部分权限,建立一个用户多半情况下,赋予 connect 和 resource 角色 就够了
connect角色 所拥有的权限有 :
alter session 修改会话
create cluster 创建簇
create database link
create session
create table
create view
create sequence
resources 角色用开发人员选哟的其他权限,比如建立存储过程,触发器,resource 角色隐含了 unlimited tablespace 系统权限 无限表空间权限、
create cluster
create indextype
create table
create type
create proecdure
create trigger
dba角色具有 所有的系统权限 以及 with admin option选项,默认的dba用户为 sys和system 他们可以将任何系统权限授予其他用户,但是 dba角色不具备 sysdba和sysoper的特权(启动和关闭数据库)
218 自定义角色 一般是dba来建立,别的用户需要 create role 的系统权限(创建角色时候可以指定验证方式(不验证,数据库验证等))
建立角色(不验证):如果角色是公用的,可以采用不验证的方式建立角色
create role 角色名 not identified;
alter role myrole identified by luobing; --修改成 需要数据库验证的
建立角色(需要数据库验证)
create role 角色名 identified by shunping;
grant select on scott.emp from 角色名 --都是 system 用户登录
create update on scott.emp from 角色名 -- 如果用 scott 就没有方案名
crate delete on scott.emp from 角色名
219 给角色赋予权限
grant create session to 角色名 with admin option;
220 给用户赋角色
grant 角色名 to 用户名 with admin option; 表示 此用户可以将这个角色传递下去
221 删除某个用户的角色
revoke 角色名 from 用户名;
222 删除角色 一般也是由dba来执行的
drop role 角色名 :---》如果角色被删除了, 拥有者角色的人没有权限了
223 查询所有的角色
select * from dba_roles;
224 PL/SQL procedura language /sql 过程化语言
225 查询创建过程中的错误信息
show error;
226 create or replace procedure ss is
begin
insert into myTest values('luob','luob');
end;
/ ---如果采用sqlplusw 需要用 这个来结束执行
227 调用过程
exec 过程名;
call 过程名();
exec 过程名();
228 pl/sql 的组成
块{过程,函数,触发器,包} 最小单元
规范: 单行注视 “--“
多行注视: /* */
标识符的命名规范
定义变量 ---》 v_
定义长常量 ---》 c_
游标 ------》 _cursor ---》emp_cursor;
例外 ------》 e_ ---->e_error;
229 块有三个定义的部分组成
declare (可选)
/*
定义部分 --->定义常量 ,变量,游标,例外,复发数据类型
*/
begin
/*
执行部分
*/
exception (可选)
/*
例外处理部分 ---》处理运行的各种错误
*/
end;
230 set serveroutput on ;打开一个输出选项 就会有输出
begin
dbms_output.put_line('hello world!');
end;
/
231 declare
v_ename varchar2(30);
v_sal number(7,2);
begin
select ename,sal into v_ename,v_sal from emp where empno=&no;
dbms_output.put_line('用户名:'||v_name||' 工资'|| v_sal);
end;
/
232 declare
v_enme varchar2(30);
v_sal number(10,2);
begin
select ename,sal into v_ename,v_sal from emp where empno=&no;
dbms_output.put_line(v_ename|| v_sal);
exception
when no_data_found then
dbms_output.put_line('朋友,你输入的编号有误');
end;
/
233 上面都是 pl/sql 语句快
234 过程
create or replace procedure sp_emp3(spName varchar2,newSal number)is
begin
upadte emp set sal=newSal where ename=spName;
end;
/
exec sp_emp3('SCOTT',4687);
235 函数
create or replace function sp_fun1(spName varchar2) return
number is yearSal number(7,2);
begin
select sal*12+nvl(comm,0)*12 into yealSal from emp where ename=spName;
return yearSal;
end;
/
var abc number;
call sp_fun1('SCOTT') into:abc;
236 包规范
create package sp_package is
procedure update_sal(name varchar2,newSal number);
function annual_income(name varchar2) return number;
end;
237 包体
create package body sp_package is
proceduare update_sal(name varchar2,newSal number)
is
begin
update emp set sal=newSal where ename=name;
end;
function annual_salary(name varchar2) return numer is yearSal number;
begin
select sal*12+nvl(comm,0)*12 into yearSal from emp where ename =name;
return yealSal;
end;
end;
238 在 pl/sql 中给变量赋初始值
v_sal number(6,2):=5.4;
v_hiredate date;
v_valid boolean not ull default false;
239 标量(scalar)的时候用
declare
c_tax_rate number(3,2):=0.03;
v_ename varchar2(50);
v_sal number(7,2);
v_yearSal number(7,2);
begin
select ename,sal into v_ename,v_sal from emp where empno=&no;
v_yearSal:=v_sal*c_tax_rate;
dbms_output.put_line('姓名:'||_ename||' 工资:'||v_Sal||' 交税:'||v_yearSal);
end;
/
240 标量使用 %type类型
declare
c_tax_rate number(3,2):=0.03;
v_ename emp.ename%type;
v_sal emp.sal%type;
v_tax_sal emp.sal%type;
select ename,sal into v_ename,v_sal from emp where empno=&no;
v_tax_sal:=v_sal*c_tax_rate;
dbms_output.put_line('姓名:'||_ename||' 工资:'||v_Sal||' 交税:'||v_tax_sal);
end;
/
241 复合变量(composite) 能够返回多个值的变量,
pl/Sql 记录
pl/Sql 表
嵌套表
varray (动态数组)
242 pl/sql 记录
declare
//自己定义的一个类型
type emp_record_type is record(name emp.ename%type,sal emp.sal%type,title emp.job%type);
v_emp_record emp_record_type; //给这个类型 定义一个变量
begin //赋值
select ename,sal,job into v_emp_record from emp where empno=&no;
// 取值
dbms_output.put_line('员工姓名:'||v_emp_record.name);
end;
/
243 pl/sql表 (相当于一个数组)(下标没有限制 能够为 - +);
declare
//定义pl/sql表类, sp_table_type 该类型用户存放 emp.ename%type
// index by binary_integer 表示下标是整数
type sp_table_type is table of emp.ename%type index by binary_integer;
sp_table sp_table_type; // 定义这个类型的 一个变量
begin
//赋值一个只能返回一行 而且 下标可以为负数,取和存都是一个下标
select ename into sp_table(0) from emp where empno=7788;
dbms_output.put_line('员工名:'||sp_table(0));
end;
244 参照标量 用于存放数值指针的变量,可以使应用程序同享相同的对象,从而降低占用空间 不属于 复合变量
游标变量 ref cursor
定义的时候:不需要指定相应的select语句
使用的时候:(open) 需要指定select语句 (这样游标就与一select语句结合了)
对象类型变量 ref obj_type
245 定义游标变量
declare
//定义一个类型 为游标变量
type sp_emp_cursor is ref cursor;
//定义这类型的变量
test_cursor sp_emp_cursor;
//定义变量
v_ename emp.ename%type;
v_sal emp.sal%type;
begin
//执行
//把 test_cursor 和一个 select结合起来
open test_cursor for select ename,sal from emp where deptno=&no;
//循环取出
loop
//遍历
fetch test_cursor into v_ename,v_sal;
//判断当前用户的工资 是否是小于200 否则+100
if v_sal<200 then
update emp set sal=sal+100 where ename=v_ename;
end if;
//判断test_cursor游标是否为空, 否则退出
exit when test_cursor%notfound;
//打印出来
dbms_output.put_line('员工名字'||v_ename||'工资'||v_sal);
end loop;//结束游标
end;
/
246 orale的三种验证机制
sys 采用的 是操作系统验证 和密码文件验证
操作系统验证 --我的电脑 --管理 ---本地用户和组 -- 组 ora_dba
密码文化验证 --oralce的安装目录下的 _PWDorcl.ora 这个就是密码文件
数据库验证 ---普通的用户
第一个 在 用户组中删除 用户就可以了 这样 conn / as sysdba 就不能进去
第二个 删除 密码文件 --采用命令 orapwd
orapwd file=D:\app\Admin\product\11.1.0\database\PWDorcl.ora password=123456 entries=10 force=y
表示重新穿件一个密码文件,
247 主流的数据库据
微软 sql server access
瑞典MySql AB公司 mySql
ibm公司 db2
美国Sybase公司 Sybase
ibm公司 informix
美国Oracle公司 oralce
248 列和表名的命名规则 字符开头 不得超过 30字符 不能使用 oracle 的保留字, 只能使用 A-Za-z0-9$#
249 rowid 确定了每条记录在oracle中的那一个数据对象,那个数据文件,快,行上。
rowid的格式如下
数据对象编号 文件编号 块编号 行编号
OOOOOO FFF BBBBBB RRR
data_object_id# rfile# block# row#
32bit 12bit 22bit 16bit
250 删除重复记录 (保留大号用 max 保留小号 用min)
1. delete from student a where rowid not in (select max(b.rowid) from student b where a.name=b.name and a.sex=b.sex and a.no=b.no);
2.(保留大号用 "max <" 保留小号 用 "min >")
delete from student a where rowid <(select max(b.rowid) from student b where a.sex=b.sex and a.name=b.name and a.no=b.no);
3. (保留大号用 max 保留小号 用min 和 group by)
delete from student a where row id not in (select max(b.rowid) from student b. group by b.no,b.name,b.sex)
4.把student中唯一确定的任意一行数据(1,'ab','男') 把sex字段更新为‘女’
update student set sex='女' where rowid=(select min(rowid) from student where no=1 and name='ab' and d.dex='男’);
5.查询大量重复的记录
select empno from empa group by empno having count(*) >1;
select * from empa where rowid not in (select min(rowid) from empa group by empno);
6.查询少量重复记录
select * from empa a where rowid<>(select max(rowid) from empa where empno=a.empno)
7.删除大量重复记录
delete empa where empno in(select empno from empa group by empno having count(*)>1) and rowid not in(select min(rowid) from empa group by empno having count(*)>1);
delete empa where rowid not in (select min(rowid) from empa group by empno);
delete empa a where rowid <>(select max(rowid) from empa where empno=a.empno)
delete emp where rowid <>(select max(rowid) from empa group by empno)
--------------------------
user_tables
all_tables;
dba_tables;
dba_user;
dba_sys_privs
role_sys_privs
ROLE_TAB_PRIVS
dbs_tab_privs //对象权限
all_tab_privs
user_tab_privs
dba_col_privs
all_col_privs
user_col_privs
dba_roles; //所有的角色
dba_role_privs //角色对应的权限
system_privilege_map //系统的所有权限
dba_tablespaces; //所有的表空间
dict
global_name;
dual
v_$
dba_data_files
user_constraints
user_cons_columns
dba_indexes
all_indexes;
user_indexes
user_ind_columns
all_ind_columns;
table_privilege_map;
table_privileges;
select count(*) from dba_roles; 51
select count(*) from system_privilege_map; 206
select count(*) from table_privilege_map; 26
分享到:
相关推荐
内容概要:本文详细探讨了利用NSGA2算法进行电力系统中储能系统的选址和定容优化,并结合熵权TOPSIS方法选择最优解。首先介绍了使用Matpower工具包进行潮流计算的基础步骤,随后深入讨论了储能系统引入后的复杂性和优化目标设定。文中展示了如何构建目标函数,包括储能的投资成本和系统电压偏差,并详细解释了NSGA2算法的具体实现,如种群初始化、交叉变异操作以及约束条件处理。最后,通过熵权法确定权重并应用TOPSIS方法对多个优化结果进行评估,选出综合性能最佳的储能配置方案。 适合人群:从事电力系统规划、优化算法研究的专业人士,尤其是对储能系统优化感兴趣的科研人员和技术开发者。 使用场景及目标:适用于需要解决电力系统中储能系统选址和定容问题的实际工程项目。主要目标是在满足系统稳定性要求的前提下,最小化储能系统的投资成本,提高系统的经济性和可靠性。 其他说明:文章提供了详细的代码片段和理论推导,帮助读者更好地理解和实施所提出的优化方法。此外,还提到了一些实际应用中的注意事项,如SOC约束处理、参数选择等,为后续的研究和应用提供了宝贵的实践经验。
基于python+pyqt5实现视频自动化下载、剪辑和上传系统源码+项目说明.zip 该项目是用脚本实现部分视频网站视频内容的自动化下载、剪辑以及上传,其中界面是用PyQT做的。 使用的浏览器驱动是undetected_chromedriver,可以跳过tiktok的机器人检查 使用的浏览器是91,版本:Google_Chrome_(64bit)_v91.0.4472.77 【功能】 自动从各种视频网站下载视频 支持视频剪辑和合集制作 支持自动上传视频到视频网站 技术栈 Python PyQT undetected_chromedriver
内容概要:本文详细介绍了西门子S7-1200双套三坐标6轴联动控制系统的开发与调试经验。主要内容涵盖双PLC通信机制、轴控制逻辑、安全联锁设计以及触摸屏程序绑定等方面。文中通过具体代码示例展示了如何利用SCL语言实现高效稳定的多轴联动控制,并分享了实际项目中的最佳实践和技术难点解决方案。此外,还讨论了程序结构优化、报警代码设计、数据块管理等关键环节,强调了模块化设计思想的应用及其带来的效率提升。 适合人群:从事工业自动化领域的工程师,尤其是熟悉西门子PLC编程的专业人士。 使用场景及目标:适用于需要进行复杂运动控制的自动化生产线,如汽车制造、电子装配等行业。主要目标是提高生产效率,确保设备运行的安全性和稳定性。 其他说明:文中提到的许多技术和方法不仅限于特定型号的PLC,对于其他品牌的控制器也有一定的借鉴意义。同时,提供的代码片段可以直接应用于类似项目中,帮助开发者快速搭建可靠的控制系统。
NFC Tools是一个应用程序,允许你在你的 NFC 标签和其他 RFID 兼容芯片上读取或写入或编程代码任务。NFC Tools PRO版本包括很多其他的附加功能,比如配置文件管理等。保存你的NFC标签或任务的配置文件,以便你以后重新使用它们。导出和导入很容易。NFC Tools PRO官方版允许你直接从现有的 NFC 标签导入你的记录或任务。 你可以很快编辑你的标签。此外还可以直接运行你的任务配置文件,不需要NFC 标签。
该资源为protobuf-6.30.1-py3-none-any.whl,欢迎下载使用哦!
内容概要:本文详细介绍了如何在FLAC3D中提取壳单元和衬砌单元的关键内力数据,如弯矩、轴力和剪力。针对壳单元,文中提供了具体的FISH命令和函数,展示了如何利用gp.extra属性提取弯矩,并强调了局部坐标系方向的重要性。对于衬砌单元,则介绍了专门的命令和注意事项,如使用liner组件提取轴力和剪力,以及如何处理弯矩数据。此外,还分享了一些实用的经验和技巧,如批量数据处理、单位换算、内力符号规则等。最后,提到了使用Python进行后处理的方法,将提取的数据转化为更直观的形式,便于进一步分析。 适合人群:从事岩土工程、隧道工程及相关领域的工程师和技术人员,尤其是对FLAC3D有一定基础的用户。 使用场景及目标:帮助用户掌握FLAC3D中壳单元和衬砌单元内力提取的具体方法,提高工作效率,确保数据分析的准确性。适用于需要进行结构内力分析、支护设计优化等项目的工程师。 其他说明:文章不仅提供了详细的命令和函数示例,还分享了许多实战经验和常见错误的规避方法,有助于初学者少走弯路。同时,强调了内力符号规则和单位换算的重要性,避免因疏忽导致的重大失误。
内容概要:本文详细介绍了ST公司发布的HL07:ST PMSM FOC电机控制资料包2.0的内容及其应用。资料包涵盖了ST芯片电机控制的全源代码、详细文档、多个工程源码、stm32库培训资料及例程源码。文中通过具体的代码示例,如GPIO初始化、PWM配置、ADC采样、Clarke变换、PID调节器、SVPWM生成等,深入剖析了电机控制的关键技术和优化技巧。此外,还揭示了一些隐藏的技术细节和调试技巧,如硬件同步、动态调整PID参数、电机参数自识别等。 适合人群:电机控制工程师、嵌入式开发人员、尤其是对STM32和FOC算法感兴趣的开发者。 使用场景及目标:帮助读者深入了解ST芯片电机控制的具体实现,掌握从硬件配置到算法优化的全过程,提高实际项目的开发效率和质量。适用于需要进行电机控制系统设计、调试和优化的工程项目。 其他说明:资料包中的代码和文档非常实用,提供了丰富的实战经验和优化建议,尤其适合初学者和有一定基础的研发人员。同时,文中提到的一些特殊技巧和注意事项有助于避免常见的开发陷阱,提升系统的稳定性和性能。
内容概要:文章探讨了2025年AI技术发展趋势及潜在的GPT级技术突破。首先回顾了GPT系列模型的发展历程及其对自然语言处理领域的深远影响。接着,通过介绍Geoffrey Hinton、李飞飞和张晨等AI领袖的观点,阐述了AI技术在实际应用场景中的挑战与机遇。文中详细描述了AI大模型的演进,包括多模态技术的发展、轻量化趋势以及可控性和可解释性的提升。此外,还介绍了AI计算力的革命性升级,如量子计算、云计算+AI和边缘AI的发展。最后,文章分析了AI在医疗、金融、教育、自动驾驶等行业的落地应用,并指出了面临的挑战与机遇,展望了未来的技术和社会影响。 适合人群:对AI技术感兴趣的从业者、研究人员、企业家及政策制定者。 使用场景及目标:①了解AI技术的最新进展和未来趋势;②探索AI技术在各行业的应用前景;③评估AI技术带来的挑战与机遇,为相关决策提供参考。 阅读建议:本文内容涵盖广泛,既有技术细节又有宏观展望,建议读者结合自身背景选择感兴趣的部分深入阅读,重点关注与自身行业或研究方向相关的章节。
内容概要:本文详细探讨了基于樽海鞘算法(SSA)优化的极限学习机(ELM)在回归预测任务中的应用,并与传统的BP神经网络、广义回归神经网络(GRNN)以及未优化的ELM进行了性能对比。首先介绍了ELM的基本原理,即通过随机生成输入层与隐藏层之间的连接权重及阈值,仅需计算输出权重即可快速完成训练。接着阐述了SSA的工作机制,利用樽海鞘群体觅食行为优化ELM的输入权重和隐藏层阈值,从而提高模型性能。随后分别给出了BP、GRNN、ELM和SSA-ELM的具体实现代码,并通过波士顿房价数据集和其他工业数据集验证了各模型的表现。结果显示,SSA-ELM在预测精度方面显著优于其他三种方法,尽管其训练时间较长,但在实际应用中仍具有明显优势。 适合人群:对机器学习尤其是回归预测感兴趣的科研人员和技术开发者,特别是那些希望深入了解ELM及其优化方法的人。 使用场景及目标:适用于需要高效、高精度回归预测的应用场景,如金融建模、工业数据分析等。主要目标是提供一种更为有效的回归预测解决方案,尤其是在处理大规模数据集时能够保持较高的预测精度。 其他说明:文中提供了详细的代码示例和性能对比图表,帮助读者更好地理解和复现实验结果。同时提醒使用者注意SSA参数的选择对模型性能的影响,建议进行参数敏感性分析以获得最佳效果。
内容概要:本文详细介绍了汇川PLC与基恩士PLC通过Ethernet/IP (EIP) 协议实现联机的方法及其应用场景。首先,文章解释了硬件配置,包括基恩士KV-7300 CPU搭配KV-EP21v以太网通信模块以及汇川AM-400系列PLC的网口连接。接下来,分别阐述了基恩士和汇川PLC的程序框架,涵盖初始化EIP通讯模块、设置IP地址、建立连接、数据映射及心跳检测机制等关键技术点。此外,文中提供了具体的代码示例和调试建议,如使用Wireshark抓包工具排查问题,并强调了数据同步、字节序转换、超时处理等方面需要注意的地方。最后,分享了一些实践经验,例如确保正确的IP地址分配、合理的缓冲区大小规划、良好的接地措施等。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对PLC编程有一定基础并希望深入了解不同品牌PLC间通讯机制的专业人士。 使用场景及目标:适用于需要将不同品牌PLC集成到同一个控制系统中的工业项目,旨在提高系统的灵活性和互操作性。通过掌握本文介绍的技术要点,可以有效减少因PLC品牌差异带来的兼容性和稳定性问题。 其他说明:文中不仅提供了理论指导,还结合实际案例进行了深入浅出的讲解,帮助读者更好地理解和应用相关技术。同时,针对可能出现的问题给出了预防和解决方案,使读者能够在实践中少走弯路。
内容概要:本文详细记录了作者将VESC项目的非线性磁链观测器移植到STM32F4开发板的过程。首先介绍了FOC技术和VESC源码的重要性和特点,然后重点阐述了非线性磁链观测器的实现方法及其核心代码。接着讨论了移植过程中遇到的技术难题,如实时性、稳定性、中断处理、电流采样等问题,并分享了解决这些问题的具体措施。最后展示了测试结果,证明了移植的成功以及观测器的良好性能。 适合人群:具有一定嵌入式开发经验的研发人员,特别是从事电机控制领域的工程师和技术爱好者。 使用场景及目标:适用于希望深入理解VESC源码和非线性磁链观测器的工作机制,掌握STM32F4平台上FOC算法实现的人群。目标是在实际项目中应用这些技术,提高电机控制系统的性能。 其他说明:文中提供了大量实用的代码片段和调试技巧,帮助读者更好地理解和解决问题。此外,作者还分享了一些个人经验和心得,增加了文章的趣味性和实用性。
移远EC20 Windows驱动 操作系统 - 桌面系统 - 移远EC20 Windows驱动
检证资料jianzhen.ppt
内容概要:本文档《ATK-DLRK3568嵌入式Qt开发实战V1.2》是正点原子出品的一份面向初学者的嵌入式Qt开发指南,主要内容涵盖嵌入式Linux环境下Qt的安装配置、C++基础、Qt基础、多线程编程、网络编程、多媒体开发、数据库操作以及项目实战案例。文档从最简单的“Hello World”程序开始,逐步引导读者熟悉Qt开发环境的搭建、常用控件的使用、信号与槽机制、UI设计、数据处理等关键技术点。此外,文档还提供了详细的项目实战案例,如车牌识别系统的开发,帮助读者将理论知识应用于实际项目中。 适合人群:具备一定Linux和C++基础,希望快速入门嵌入式Qt开发的初学者或有一定开发经验的研发人员。 使用场景及目标: 1. **环境搭建**:学习如何在Ubuntu环境下搭建Qt开发环境,包括安装必要的工具和库。 2. **基础知识**:掌握C++面向对象编程、Qt基础控件的使用、信号与槽机制等核心概念。 3. **高级功能**:理解多线程编程、网络通信、多媒体处理、数据库操作等高级功能的实现方法。 4. **项目实战**:通过具体的项目案例(如车牌识别系统),巩固
1、文件说明: Centos8操作系统tcl-tclxml-devel-3.2-26.el8.rpm以及相关依赖,全打包为一个tar.gz压缩包 2、安装指令: #Step1、解压 tar -zxvf tcl-tclxml-devel-3.2-26.el8.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm
C盘清理bat脚本自动清理C盘垃圾文件
桶排
内容概要:本文详细介绍了利用混沌系统进行图像加密的方法,重点探讨了Logistic映射生成混沌序列用于图像加密的具体实现。首先,通过生成混沌序列并对其进行预热处理,确保序列的随机性和稳定性。然后,采用循环移位扰乱方法对图像像素进行重新排列,使图像像素位置发生改变。接着,通过水平和垂直扩散步骤进一步打乱像素之间的关联性,增强了加密效果。文中还展示了如何通过直方图、信息熵和相关系数等指标评估加密效果,验证了该方法的有效性。 适合人群:对图像加密技术和混沌系统感兴趣的科研人员、信息安全领域的开发者和技术爱好者。 使用场景及目标:适用于研究和开发高效的图像加密算法,特别是在需要高安全性的应用场景中,如军事通信、隐私保护等领域。目标是提供一种基于混沌系统的高效、安全的图像加密解决方案。 其他说明:文中提供了详细的Python代码实现,帮助读者更好地理解和实践该加密方法。同时,强调了在实际应用中需要注意的一些关键点,如参数选择和优化,以确保最佳的加密效果。
基于EEMD奇异值熵的滚动轴承故障诊断方法研究
内容概要:本文档介绍了分块查找的基本思想及其具体实现方法。分块查找的核心在于将一个数据集划分为若干个块,块内部元素可以无序排列,但块间元素必须保持有序(对于非递减序列,后一块的所有元素均大于前一块)。文档通过C#语言实现了分块查找算法,定义了IndexBlock结构体用于存储每个块的最大值、起始位置和结束位置,并展示了如何初始化分块以及执行具体的查找操作。最后通过一个简单的例子演示了分块查找的应用,当查找成功时返回元素在数组中的索引,否则返回-1表示查找失败。; 适合人群:计算机科学专业学生或有一定编程基础的技术人员。; 使用场景及目标:①理解分块查找算法的工作原理;②掌握利用C#实现分块查找的具体步骤;③学习如何根据实际需求选择合适的查找算法以提高效率。; 其他说明:此文档不仅提供了理论性的概念解释,还结合了实际代码示例帮助读者更好地理解分块查找算法,建议读者在阅读过程中尝试运行代码并理解每一部分的功能。