Search the Community

Showing results for tags ' etc. all the mb public/native function codes are supported. 32-bit integers/floats as single entity are supported with byte and word level swapping. a separate utility automates the data mapping to your plc logic. features -serial master (basic requ'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Found 256 results

  1. Hello, I'm new to CX-Programming and I could really use your help. I want to make function block that will check the bit status from a word input variable. I made input variable and internal variable array of bool(32) and I thought I can just use the code example: array[1]:=word.1 etc... but it is not allowed in CX-programmer. My goal is rearranging  the bits status from the input word to the output word. I don't need just making the 0 to 1 or otherwise... Thank you in advance.
  2. Hi! I would like to ask how could I send data from PC to CJ1M PLC, by SCU-41 module and RS232 cable, in order to activate an actuator (LED)? In my environment, I have a sensor that sends data from PLC to PC (I'm checking data, "HelloWrld" with Putty), with this configuration: And I have another section where I want to read the data from the PC in ordr to activate a LED I would like when I send for example a letter 'a' trough Putty, the LED activates. How could I do that? Thank you very much!
  3. HI All,  I have an issue with my SCU32 communication.  Back ground Two SCU32s  (top and bottom side) connected via a 1100M datacable  using port1 ( 9600bps,  8-2-E, start code FF, end code FE, Tx save to d1000-d1200 , Rx save to d2000-d2200). PORT2 of bottom SCU32 is connected to a compass( 2 wire, 8-1-N, 19200 bps, serial gateway MODBUS ). Refer to photo Issue  Without compass, the receiving data at top is very stable and is didn't see any fluctuation. But if is compass is connected at bottom side port2, there is a fluctuation at the top side RX data(specifically d2000-d2005 ) .  I checked the data a bottom side TX (d1000-d1200) and it is stable. Only after sending the data and Receiving at Top side, then only the starting words fluctuate. I am not sure sure what is wrong, I am using logical ports for the DTXDU/DRXDU and compass.   Appreciate all your feedback and suggestions.  
  4. Hello, I'm using RSLogix 500 application for LAD programming. I would like to convert the float data type to integer data type and vice versa. I tried with the COP instruction as some had mentioned in other forums, but it was not working. So any suggestions on solving that issue would be helpful.
  5. Hello! I am new at PLC programming. I am using TM221CE16R PLC with TM3AI8 analog input module and SoMachine Basic v1.6. I am trying to scale analog input value. I am using 4-20 mA pressure sensor. I managed my wiring so that I get raw values in SoMachine Basic. But I don't know how to scale these values to usable values. My sensor works in range 0 - 16 bar. What is best way to get values? Is it PID function block or multioperand function block using equations to get range 0 - 16? I will appreciate your help.   Thanks in advance!
  6. Hi All need to convert a Decimal Value into Ascii code to send out on serial 485. eg. Weight comes in as Int 12345 i need to send it out in Ascii as 23 32 20 31 32 33 34 35. I have created an array 0 of 8 (Word) DB. Is there an easy way split the int into Digits convet in into HEX and slot the value into the various array positions? Array 0 of 8 = 23 means # Array 1 of 8 = 32 means 2 (Station ID) Array 2 of 8 = 20 means Space Array 3 of 8 = 31 means 1 Array 4 of 8  = 32 means 2 Array 5 of 8 = 33 means 3 Array 6 of 8 = 34 means 4 Array 7 of 8 = 35 means 5 Array 8 of 8 = D means CR    this sends the value of 12345 to Display ID 2 . need help to convert the decimal number in ascii. the decimal number will be max of 5 digits and less than 32000   any help will be greatly appreciated.
  7. Hey everyone, I have a CJ1M PLC with a CJ1W-SCU21-V1 serial card. It is unit 6 and I am using port 1. I have bit 1659.06 ((1500 + 25 * Unit #) +9, bit 6) as "characters in buffer" but it never comes on (data is being received through the port successfully). It is on No-Protocol mode. Does anyone have any ideas as to how I can detect data in the buffer?
  8. Serial comm with FX1N PLC

    I need to communicate with a Mitsubishi PLC using Matlab. To do that, I open a serial communication with the appropiate parameters (7,e,1,9600), and write an ASCII message based on the manual I have (attached). I have tried examples as the one in the attached image. The response starts with a 6, that is, the ASCII number for ACK, so something must be working. But the rest of the response is junk (149, 149, 149...), although its length depends on the input length (if I add terminator, the response is longer, and so on). I am completely stuck. Some information that might be helpful: I am using a Serial to USB converter that I have used successfully with other PLC (which used Modbus, so everything was easier) There's a VB application (of which I don't have the code) that is able to connect to the PLC (I need to connect directly without using this intermediate app). I have decompiled it trying to get some info, but was just able to confirm the 7,e,1,9600 parameters, since the rest of the code is too mangled to analyze The attached manual was sent to me by the guy who designed the PLC and its ladder code, so I guess it is the correct one I have tried the echo mode (TT) to no avail, response is always the same I have some doubts regarding the reading of a value (see attached image). Why is there a second message from the PC? Shouldn't I just need to read the response? GX Developer tells me that the address D8120 (which is supposed to define the comm format and protocol) contains a 0, which seems weird. Any help or hint would be greatly appreciated. Thanks jy992d69901e.pdf
  9. I'm working on simple structured text program which takes in DWORD values, does some math on them and then outputs in DWORD type. What data type should I be using and how can I make this work?  This is one of the lines from the code(everything DWORD) and I get 'operator not supported by DWORD data type' XPos3 := XPos1 + (2*XIncrement);  
  10. I'm using simple function block, one input and one output, like in this example: Problem I have is how to call function block and use inverted (NOT) value , ie instead 5.01 I need to use NOT (5.01) . Of course I could create new symbols that are inverted values of actual inputs but i'm trying to avoid that, number of addresses is significant.
  11. Hello, CJ2M CPU-32 to IAI motion controller through ethernet/ip I'm working on programming electric actuators to pick up parts from a tray. I will have x (row) and y (column) coordinates that I need to update to move the actuators. So to go through the whole tray I would have to use nested loops. (below what i'm trying to achieve if i was doing it in C++)                                           6 Rows and 6 Columns, palettizing                                           data rows&columns DWORD (Row1,row2,row3...row6; col1,col2...col6)                                           c++ code                                           for i=0,i++,i<6;                                               rowData = row                                               for i=0,i++,i<6;                                                   colData = col                                                   execute movement                                                   wait for confirmation                                               end                                           end I have a way of doing it but it will require a lot of repetitive lines and typing every step, and I was wondering if there is a way on every iteration to increment the data location instead of the contents. In the picture below you can see the example where the goal is to copy data from D8100 to D8000, then in next step from D8102 to D8000, then from D8104 to D8000 and so on. So far in the documentation I was only able to find how to increment contents. Is it even possible to do what I want to?
  12. To calculate a walking or moving average I want to use WSFT and SUM in a function block. Does anybody have experience with this? The idea is to take a 1 hour average of a proces value and store this average value each hour. The software then have to calculate the walking or moving average over say 4 hours or 12 hours with a maxium of 24 hours. See attached files with logic but then not in a function block     Walking_AVG.cxp Walking_AVG.opt Walking_AVG.bak
  13. Sorry for my bad english speaking. I want to change the baud rate to 19200,38400,.... for send it via Programmer-Serial-Port. The software GX-Developer can do it!. When the PLC is switched on, we generate a value in the data register D8116 and D8117. GX Developer reads the PLC type and data registers D8116 and D8117 at startup and generates a value. This value is written in D8118 and D8119. The big question is: how is D8118 and D8119 generated ??
  14. Mitsubishi Fx5uc

    hello everyone, Im new with mitsubishi and  ive got a project with a Fx5uc but im stucked in communication protocol to communicate with a weintek HMI ive already tested easybuilder simulation with a modbus tcp ip symulator and it works but im completlely lost about mitsubishi, is there a way to communicate via Modbus TCP/IP? or which protocol would u recommend as i have to connect 2 drives as well. thank you in advance
  15. AVE instruction Error

    A little background information here, I am trying to create a moving average so I accomplished it with the code (imaged attached) The problem i am having is the AVE instruction error bit goes true. it leaved me with a result of 1.#QAN  I did some googling and it said this is typically done when dividing by zero?? so i added a NEQ to 0 prior to loading the array. then it happened again. so i put the error bit in front of the FFL so it will stop loading the array when i get the error bit so i can see what values are in the array when it errors out. Has anyone else had this issue and what could you do to resolve it? I haven't had any luck find something that points me in the right direction. Thanks in advance for your help.
  16. I can debug my plc app with simulator. I created some function block, and inside functionblock I can inspect in and out parameters, as well as local variables. But in/out parameters values are not shown. Any solution? Im using Sysmac Studio 1.29.2 and selected a NX PLC in my project.
  17. Hello guys, I am very new at this. I am trying to make a Schneider PLC (TM251MESE) to send some serial commands (485)  to a integrated stepper motor from Automation Direct (STR-MTRD-17030RE, but I am lost. The driver has been program to receive the SCL commands. But not quite sure how to send those from the plc. Im using SoMachine V 4.2 Have any of you done anything similar? Any example will be greatly appreciated.  Thanks 
  18. Cognex Data Logging

    Anyone know how I can create a log of results from a Cognex vision system?  I have 3 cameras that look at various thinks... clip presence, clip height, clip angle.  There are 2 clips per part and 6 parts per tool.  This makes it hard to zero in on what I areas I need to tweak. Thanks! P.S. I've heard that maybe their OPC Server could do this but I don't have much experience with it (actually I don't have a whole lot of vision experience at all).  From what I've briefly read, I just install the server, set up the tag within the server, start it, and I can just drag and drop the tags into an Excell cell?  If this is true, this just gives me another way to read the values.  How can I create a database or log of these tags?
  19. Hi, Could anyone help me out on how to extract the digits present in a string in sysmac studio... Thanks in advance !!!
  20. Hi all, I'm enhancing an Ethernet IP driver but only just learning the ropes in terms of Allen-Bradley PLCs. I'm presently focussing on that part of the driver which specifically supports SLC/500 & MicroLogix 1400, for which I have one controller of each type for testing purposes. I can already cater for a range of standard file types: integer, float, binary, input, output, string, counter, timer, control, status, and this is working well. However, by working with RSLogix500, I can see that there are other data file types which can be hosted in these controller types (dependent on model) and, indeed for test purposes, I have actually created instances of them as follows: ASCII (at A21, 20 elements) for both SLC & ML1400 Long (at L22, 10 elements) for ML1400 Message (at MG23, 8 elements) for ML1400 PID (at PD24, 4 elements) for ML1400 Programmable Limit Switch (at PLS25, 3 elements) for ML1400 Routing Info (at RI26, 3 elements) for ML1400 Extended Routing Info (at RIX27, 3 elements) for ML1400 Now, the driver obviously uses standard DF1 PCCC data types (see below) to read/write individual elements/sub-elements of the file types that I can already support -- and I can see that there's a file type listed below for ASCII. •80 to 83 hex: reserved •84 hex: status •85 hex: bit •86 hex: timer •87 hex: counter •88 hex: control •89 hex: integer •8A hex: floating point •8B hex: output logical by slot •8C hex: input logical by slot •8D hex: string •8E hex: ASCII •8F hex: BCD However, my question is this: since there are no hex file types corresponding to non-elementary data types such as L, MG, PID, PLS, RI and RIX, what file type do I specify in my DF1 PCCC packets to read/write the elements/sub-elements of these six data types ? Thanks in advance.
  21. Data entered into the PLC D memory table does not end up in the instructions and I'm not sure what I'm doing wrong. For instance I want to use the CP1W-DAM01 to change a duration value. I have a symbol setup using the corresponding address setup so that it ties in with my timer but the data does not transfer even thought the value shows up in the table. I'm also using it for parameters on a scale instruction, same issue. Any ideas.
  22. Function Block addressing

    Hello all.  I have a program which has 8 function blocks. I recently added extra functionality to one of the programs (not the function blocks). I added the new variables to the global symbols table and added the new code, but when I compiled the new code, the variable addresses in three of the function blocks had changed. This is a problem, because we use memory cassettes to download new versions of code, so when the new version is downloaded to a machine in some far flung part of the world, these variables will be overwritten (they are hours run variable, so are important for servicing purposes).   My understanding is that CX assign's variable addresses in Function Blocks and we have no control over this. Bit if I only added variables to the Global symbol table, why are the FB addresses affected??   Any input appreciated. 
  23. Utility Power at Night

    Has anyone had any issues with dirty power or disturbances from Utility that occur duration the night?
  24. Hello. I am trying to make a serial RS 232C connection between Schneider Magelis HMIGXU3512 and Omron PLC CP1E. However, there seems to be a communication problems between both of the equipment. I am using cable XBT Z9740 for the serial communication cable. The format used is 8.2.N for both equipment. The baud rate is 115200. No Flow Rate is choose. Anyone can help with this kind of problems?
  25. Hi, I've been having a problem with my Schneider setup, and I can't seem to figure out the problem. I'm using Machine Expert Logic Builder and Vijeo 6.2, and I can't seem to download to my PLC. I can download to my HMI just fine, but my HMI comes back with the message as mentioned in the title. Also when I perform a full download, machine expert comes up with the message "Could not connect to the device for item "xx", selected target system "PLC name" is different from the connected device "HMI name". The weirdest thing is that machine expert shows my PLC just fine, but doesn't show my HMI. I have no idea what to do, as I feel like I've tried everything. The IP range is fine, subnet is fine. The driver in IO manager in Vijeo has the PLC nodename in it, so that shouldn't be the problem either. Does anyone know what to do in a situation like this? Thank you in advance!