Saturday, July 28, 2018

solenoid valve

https://www.automationdirect.com/pneumatics/misc/circuit_symbols
https://www.automationdirect.com/pneumatics/valves/valves_positions

2pos 5 ports
port 1 inlet. port 3 and 5 exhaust. port 2, 4 to actuator cylinder(outlet)

Saturday, June 30, 2018

电机

伺服电机分类:
http://www.360doc.com/content/15/0928/13/12989767_501993816.shtml

AC伺服系统可以用异步交流电机(感应电机)或者同步交流电机,区别如下。一般人称为伺服电机的设备往往是指交流同步电机加上encoder。但是其实异步电机也是可以用做伺服系统的,加上encoder就好。

另外,异步交流电机在非精密场合直接用VFD控制即可了。
异步伺服电机实际上和异步电机是几乎完全相似的,不过其引入了编码器实现了对电机的闭环控制,因此也可以视为伺服电机的一种。尤其是当前变频调速技术的飞速发展,异步伺服电机的实际控制性能也很不错,配合其支持大功率、高转速的特点,在一些永磁同步电机无法胜任的地方大放异彩。
特点:
1. 功率可以做得很大,设计成熟,运行可靠性高。
2. 支持高速(过10000rpm)长时间运行,同比下永磁电机最高只能做到6000~8000rpm转速。
3.性价比高,在对控制精度要求不高的情况下可以替代永磁电机使用。
同步伺服电机
感应电机一样是一种常用的交流电机 。特点是:稳态运行时,转子的转速和电网频率之间有不变的关系n=ns=60f/p,其中f为电网频率,p为电机的极对数,ns称为同步转速。若电网的频率不变,则稳态时同步电机的转速恒为常数而与负载的大小无关。
特点:
1.低转动惯量,高动态响应
2.高功率密度,结构紧凑
3.光滑外壳设计,易于清洁、维护
4.封装等级IP54、IP65
5.使用寿命长

Sunday, April 29, 2018

MasterCAM lathe操作 & 毛坯操作

1. lathe的坐标系是D-Z坐标系。其中D可以看作是径向,Z是轴向。每次工件放入后,需要调整好坐标系再开始生成刀轨,否则无法生成。 具体步骤是:
1)先看一下part再默认的wcs下是什么orientation。如果侧面profile正好落在x-y平面,那就不用调整了,可以直接再x-y平面内生成lathe profile
2)如果不是落在x-y平面内,如下图这个情况的话:


就要新建坐标系,让x-y平面包含part侧面profile,Z轴指向径向(注意这里的坐标系还是用mill的x-y-z的,和lathe的D-Z的Z还是不一样的,这里的Z其实相当于D-Z的D,这里的X是D-Z的Z,所以其实在mill坐标系下调整方向/建立坐标时,就是把轴向和X对应起来,吧径向和Z对应起来)。如下图所示,用plane manager建立一个新的坐标系,并将c平面,和T平面都移到这个坐标系的x-y plane中


最后,基于这个plane,建立一个D-Z坐标系(plane),在选中上面的plane的情况下,在plane manager菜单中点选+D,+Z或者其他(代表不同的象限)


然后,以这个平面为plane,建立stock和夹头



之后就可以生成lathe profile了。框选全部面,create-lathe profile. 可以看见这个profile的位置就落在我们建立的坐标系的x-y平面内。

之后就能生成lathe刀轨了!


加工完的stock形状发生改变,在verify玩之后可以保存为stl格式给之后的加工工序使用。参见这个视频:
https://www.youtube.com/watch?v=Ag25i1WEVn8





Sunday, January 28, 2018

源型漏型输入



源型输入是电流从sensor流到PLC(PNP)
漏型是电流从PLC流到sensor(NPN)

in another words
源型输入是电流从com端流出!
漏型是电流从com端流入

电流的方向都是从正到负!


在接三线sensor时,output先与任意一个input terminal链接,如果是PNP型sensor,则common端要接到电源负极。如果是NPN型sensor,common端要接到电源正极。

Thursday, November 16, 2017

Allen Bradley and siemens IP configuration and IoT module settings

AB:
1. USE usb2RS232 cable to connect to the CPU. CPU is connected to Ethernet module, ControlNet module and device Net module.

2. Open RSlinx. Delete all previous drivers(if cannot delete just restart Rslinx while everything is disconnected)!!! Configure a driver called RS-232 DF1 drivers. Select correct COM and baud rate to establish the driver. Should be able to see all the above devices in RSwho under this driver. Then select the Ethernet module, right click to change the properties, where we can set the IP and subnet mask for the Ethernet module.

3. Still in RSlinx, configure a driver for Ethernet. The name of driver is "Ethernet devices". When configure it there will be a window pop out asking for the IP address, put the address you set in step 2 into station 0, click okay. Then all above devices on the same backplane will have the same IP address will show up in RSWho.

3. Open RSLOGIX5000, should be able to see the devices on the same chassis in WhoActive.


SIEMENS:
1. ALL IP SETTINGS CAN BE DONE IN TIA PORTAL as long as the PLC is connected with Ethernet to the computer(workstation).
2.open TIA portal, first create the project without a in-predefined device, then start device detection
3.after successfully detected of the device, go to the project tree and select "online & diagnostics", in the menu we have a lot of options such as assign IP address or formatting the SD card, etc...


For using the IoT module for siemens PLC:
1. for setting the IP address and subnet mask: please refer to IoT2000 setup in the google drive(miles.luo.xl@google.com). The firmware of IoT2000 is dumped to the SD card and then used in the IoT2040 module in my case. It works.....

2. For installing the node-red please refer to the PDF showing the steps(miles.luo.xl@google.com). One thing to note is that all installations should be with the internet connection of the IoT module! Installing the nodes for S7 communication and Azure IoT-hub then. Refer to the PDF or go to the website of node-red. If it somehow doesn't work just simply format the SD card in TIA portal!

The code to start node red in the IoT module's OS: node /usr/lib/node_modules/node-red/red &
Current flow is stored at /home/root/.node-red/ can ls and rm the undesired flow (the folder is invisible for WINscp)

3. Follow the setting in this video to set up a flow. S7 reading value------>construct a payload string in correct format------>upload to IoT using the Azure IoT hub node. Done! The thing is to correctly construct a payload string in the correct format.

{
  "deviceId": "testenode1",
  "key": "cw3nniq77BbjpOCDLqb7xEFTU509HeR6Ki1NwR20jj0=",
  "protocol": "amqp",
  "data": "{tem: 25, wind: 20}"
}


4. Use the flow in this link to register the device in IoT hub:https://flows.nodered.org/node/node-red-contrib-azure-iot-hub. After registering we will have a key to access the hub.

For using the IoT module with AB PLC:


Friday, September 15, 2017

行星系坐标变换 和 一些 OPENGL的感悟

这个例子是地球绕太阳,月亮同时绕地球的渲染

1.太阳为原点渲染,地球的坐标先平移,再绕原点y轴旋转渲染
2.麻烦的是月亮。月亮的坐标上传后也以原点为中心(big bang模式!opengl的模型上传之后,其局部坐标和世界坐标是重合的,后续的变换都是在世界坐标系中进行的!就像宇宙形成一样从中心大爆炸!)


    1)月亮变换第一种方法:先缩放,然后偏移(偏移距离是月亮距离原点(即太阳)的绝对距离),然后进行坐标系变换,将此时的坐标(在太阳坐标系中给出)变换到地球坐标系中去。由于地球的坐标系是在太阳坐标系的基础上,先旋转再平移得到的(注意两者都有!),所以构建两个view变换矩阵,一个是旋转,一个是平移,月亮的太阳坐标先乘以旋转再乘以平移,得到月亮在地球坐标系里的坐标。(最后为了render,还要将这个坐标变换回太阳坐标系去,同样乘以两个view矩阵,不过和第一步的是相反的方向)。总体是一个世界到local,做完旋转在回到世界的变换过程。

    2) 第二种方法,月亮的坐标先缩放,再偏移,不过此时的偏移量按照相对地球的距离进行。然后做旋转,此时月亮是围绕中心轴以相对地球的偏移在旋转(这些变换都是在太阳坐标系下进行的)。接下来将旋转之后的坐标变换到地球坐标系中去,同样需要一个旋转一个平移变换,得到月亮在地球坐标系的坐标。最后再用两个相反的矩阵将这个坐标变换会太阳坐标系用于render。整体上是一个先在世界坐标系做完旋转(注意此时的旋转半径是月亮相对地球的距离),变换到local坐标,然后再回到世界的过程。

上述变换和在hexapod设计中的坐标变换是类似的(将旋转平台的坐标变换到base坐标系中去,而base坐标系是由旋转坐标系先旋转再平移得到的,所以构建两个view变换矩阵来做变换)

要记住view变换(坐标系变换)和坐标变换之间的关系!