Xây dựng hệ thống quản lý cân động ứng dụng trong hệ thống cân tàu hỏa
Trang 1ĐẠI HỌC THÁI NGUYÊNKHOA CÔNG NGHỆ THÔNG TIN
LUẬN VĂN CAO HỌC
Thái nguyên, tháng 8 năm 2009
Trang 2Mục lục
1.2 Mô tả nghiệp vụ của hệ thống hiện hành 4
1.3 Mô tả, xác định mục tiêu và yêu cầu của hệ thống mới 41.4 Tổng kết chương 5
2 Thiết kế tổng thể hệ thống cân động vật thể 62.1 Thiết kế phần cứng 6
2.1.1 Các phương án thiết kế phần cứng hệ thống 7
2.1.2 Sơ đồ tổng thể 10
2.1.3 Ý nghĩa và yêu cầu kỹ thuật của từng khối 10
2.2 Thiết kế phần mềm 12
2.2.1 Xác định các yêu cầu và phân tích hệ thống 13
2.2.2 Phân tích hệ thống hướng đối tượng 14
2.2.3 Thiết kế hệ thống hướng đối tượng 15
2.2.4 Lập trình hướng đối tượng 16
2.3 Tổng kết chương 17
3 Thiết kế chi tiết hệ thống cân động vật thể 183.1 Thiết kế phần cứng hệ thống 18
3.1.1 Khối cảm biến 21
3.1.2 Khối chuyển đổi ADC 23
3.1.3 Khối truyền thông 27
3.1.4 Khối nguồn 30
3.2 Thiết kế hướng đối tượng phần mềm hệ thống [2] 30
Trang 34.3 Các chức năng của chương trình 51
4.4 Màn hình giao diện chức năng 51
4.5 Lập kế hoạch triển khai thực tế 55
4.6 Xác định rủi ro 58
4.7 Đánh giá kết quả thử nghiệm 59
A Vi điều khiển PIC 67A.1 Từ Vi xử lý đến Vi điều khiển 67
A.2 Vi điều khiển họ PIC 68
A.3 Lập trình cho PIC 69
A.4 Một vài đặc tính của PIC 69
B Ứng dụng mạch khuếch đại thuật toán 71B.1 Ứng dụng mạch tuyến tính 71
B.2 Các ứng dụng phi tuyến 76
Trang 4Chặng đường phát triển của Tập đoàn Công nghiệp Than –Khoáng sản Việt Nam
Tập đoàn Công nghiệp Than – Khoáng sản Việt Nam (trước đây làTổng công ty Than việt Nam) được thành lập ngày 10/10/1994 theoquyết định số 563/QĐ.TTg của Thủ tướng Chính phủ Thực hiện nhiệmvụ quan trọng mà Đảng và Nhà nước giao, ngay từ khi mới đi vào hoạtđộng, Tập đoàn đã xây dựng đề án “Đổi mới tổ chức, quản lý, nângcao hiệu quả sản xuất kinh doanh”, lựa chọn chiến lược “phát triển kinhdoanh đa ngành trên nền công nghiệp than” và phương châm “cùng pháttriển với bạn hàng” Từ mục tiêu chiến lược đã đề ra, Tập đoàn Côngnghiệp Than – Khoáng sản Việt Nam (TKV) đã thay đổi hẳn về cơ chếquản lý, về mô hình tổ chức sản xuất và tiêu thụ sản phẩm, về cơ chếquản lý tài chính, tích cực đầu tư, đổi mới công nghệ trong khai thácthan, đầu tư cải tạo hoàn thiện dây chuyền công nghệ trong khai thácthan, sàng tuyển, bến rót tiêu thụ.
Trên nền sản xuất than, Tập đoàn TKV đã mạnh dạn sử dụng nguồnnhân lực sẵn có được tạo ra từ than để đầu tư các ngành nghề khác nhưphát triển mạnh mẽ ngành cơ khí mỏ theo hướng hiện đại hóa cơ khí sửa
Trang 51.1 Thực trạng tập đoàn than - khoáng sản Việt Nam-TKV2
Hình 1.1: Công ty than khoáng sản Việt Nam - TKV
chữa, phát triển cơ khí chế tạo, lắp ráp, sản xuất xe tải, đóng tàu thủy;xây dựng các nhà máy nhiệt điện; tích cực đầu tư nâng cao sản lượngkhai thác khoáng sản; sản xuất vật liệu nổ công nghiệp, xi măng, vậtliệu xây dựng; công tác nghiên cứu, ứng dụng khoa học công nghệ, bảovệ môi trường được chú trọng; thương mại dịch vụ và các ngành nghềkhác đều được đầu tư phát triển.
Trong suốt chặng đường 12 năm hoạt động, công nhân, cán bộ Tậpđoàn Công nghiệp Than – Khoáng sản Việt Nam đã không ngừng nỗlực, chủ động, sáng tạo, đã khẳng định sức mạnh của mình bằng tinhthần đoàn kết, quyết tâm vượt khó, phấn đấu vươn lên, liên tiếp hoànthành toàn diện các chỉ tiêu kế hoạch, năm sau cao hơn năm trước.
Năm 2003 đã khai thác và tiêu thụ 18 triệu tấn than, là đơn vị kinh tếđầu tiên của cả nước đã hoàn thành và vượt kế hoạch trước 2 năm trongmục tiêu kế hoạch 5 năm (2001 – 2005) mà Đại hội Đảng toàn quốc lầnthứ IX đã đề ra (Từ 14-16 triệu tấn).
Năm 2006, năm kỷ niệm 70 năm Truyền thống công nhân vùng mỏ Truyền thống Ngành Than, Tập đoàn Công nghiệp Than – Khoáng sảnViệt Nam tiếp tục chuyển đổi cơ chế quản lý mới, với mục tiêu chiếnlược “Từ tài nguyên khoáng sản và nguồn nhân lực đi lên giàu mạnh”với phương châm “Phát triển hài hòa và thân thiện với môi trường, với
Trang 6-1.1 Thực trạng tập đoàn than - khoáng sản Việt Nam-TKV3
địa phương và cộng đồng; với đối tác và bạn hàng và hài hòa trong nộibộ”, Tập đoàn cùng các công ty thành viên đã tập trung các nguồn lực,đã sản xuất và tiêu thụ 37 triệu tấn than, vượt mục tiêu quy hoạch đếnnăm 2010 (là 23 – 24 triệu tấn) do Thủ tướng Chính phủ phê duyệt.
12 năm, một hành trình đầy gian nan thử thách, song trong mỗi bướcđi của mình, Ngành Than – Khoáng sản Việt Nam luôn luôn được sựquan tâm của Đảng, Nhà nước, Chính phủ, các cấp ủy Đảng, chínhquyền và nhân dân các địa phương Sự quan tâm đó chính là nguồn cổvũ lớn lao, tiếp thêm sức mạnh để công nhân, cán bộ ngành Than –Khoáng sản Việt Nam vững bước đi lên, lao động sáng tạo, trong khókhăn, bản lĩnh người thợ mỏ càng được thể hiện và khẳng định, luônhăng hái đi đầu và hoàn thành xuất sắc mọi nhiệm vụ được giao Phẩmchất và sức sống của thợ mỏ trong suốt chặng đường hình thành và pháttriển là tinh thần “Kỷ luật và đồng tâm”, là bề dày truyền thống đã đượccác thế hệ cán bộ, công nhân thợ mỏ kế tiếp giữ gìn và phát huy, lậpnhiều thành tích vẻ vang, xây dựng Tập đoàn phát triển nhanh, mạnh,
Công ty than Uông Bí là thành viên của tập đoàn than khoángsản TKV, chuyên cung cấp than cho nhà máy nhiệt điện Uông Bí, vàmột số đơn vị khác Hàng ngày, than được chở từ công ty than Uông Bíđến nhà máy nhiệt điện để sản xuất điện năng cung cấp cho lưới điệnquốc gia.
Mỗi ngày, công ty than Uông Bí cung cấp cho nhà máy nhiệt điện phảlại khoảng 4 chuyến tàu chở than, mỗi chuyến dài khoảng 5 đến 30 toa,chất đầy than.
Có rất nhiều cách để xác định khối lượng than trên toa tàu, nhưngthực tế, cho đến nay, tất cả vẫn là ước lượng, tính toán trọng lượng thanbán ra thị trường theo cách xác định khối lượng chứ không phải là trọnglượng.
Phương pháp họ đang sử dụng là lấy mẫu than (Do KCS làm), xácđịnh khối lượng riêng, rồi đưa ra tỷ trọng của than Nhân viên cân thanchỉ việc đo khối lượng rồi nhân với tỷ trọng sẽ được khối lượng ước tínhTrên thực tế, có rất nhiều vấn đề nảy sinh trong quá trình xác địnhkhối lượng, như khi KCS lấy mẫu, độ ẩm của than khác với độ ẩm khibán, điều đó có nghĩa là nếu trời mưa hoặc nắng thì than sẽ có khối
Trang 71.2 Mô tả nghiệp vụ của hệ thống hiện hành4
lượng khác đi so với ước tính Do vậy bên bán và bên mua sẽ tính khốilượng một chuyến hàng thường khác nhau.
Phương pháp xác định khối lượng, hiện nay quy trình tính toánkhối lượng của công ty than theo các bước sau đây, giả sử quá trìnhxuất hàng của công ty:
• Than sẵn sàng xuất khỏi công ty, được KCS kiểm tra đánh giá vềchất lượng than, bao gồm khối lượng riêng, độ ẩm, độ bột (thanviên/cám),
• KCS đưa ra công thức tính khối lượng than theo thể tích Với V
• Các bên liên quan đến mua bán than chứng kiến việc xác định thểtích của tàu than, và ký kết vào phiếu cân.
• Phiếu cân được sao thành nhiều bản, mỗi bên liên quan giữ mộtbản.
• Căn cứ vào phiếu cân, bên nhận than sẽ kiểm tra lại thể tích thựccủa than mà mình được nhận, sau đó xác định lại tỷ trọng k củathan tại thời điểm nhận than, rồi tính ra khối lượng thực mà mìnhnhận được.
• Hai bên thỏa thuận lại sai lệch rồi chấp nhận khối lượng thực theothỏa thuận.
Phân tích ưu - nhược điểm của hệ thống hiện tại:
Hệ thống hiện tại hoàn toàn do con người chủ động, nên không thể chínhxác được Đôi khi nắng mưa ảnh hưởng đến độ ẩm của than, làm cho tỷtrọng khác với khi lấy mẫu, dẫn đến khi than bắt đầu xuất kho bên báncó một khối lượng, khi than nhập kho của bên mua, sẽ có khối lượngkhác Do hai bên mua và bán than đều muốn mình có lợi, cho nên xảyra mâu thuẫn và tranh chấp.
Trang 81.4 Tổng kết chương5
Mục tiêu của hệ thống mới:
Hệ thống mới phải khắc phục được các nhược điểm của hệ thống hiệnhành, và có các tính năng:
• Cân bằng thiết bị điện tử và máy tính.
• Xác định chính xác trọng lượng thực của than.
• Cân trong khi tàu đang chạy với vận tốc từ 3-15Km/h.
• Dải cân chính xác cho mỗi toa có khối lượng từ 100kg đến 120 tấn.• Sai số cho phép nằm trong khoảng 0.5%
• Mất điện trong một khoảng thời gian nhất định, vẫn cân bìnhthường.
• Lưu trữ được kết quả mỗi lần cân trong khoảng thời gian theo ýmuốn.
• Phân biệt và loại bỏ được đầu tàu.
• Phát hiện và cảnh báo toa rỗng (Toa không có hàng)• Khối lượng không phụ thuộc KCS.
• Không phải trải qua các cuộc đàm phán về triết khấu khối lượngtheo thời tiết.
• Giao diện trên máy tính thân thiện.
• In trực tiếp phiếu cân từ phần mềm cho mỗi lần cân.
• Tống hợp được lượng than bán ra trong tháng / quý / năm.
Khảo sát hiện trạng của hệ thống cũ là điều rất cần thiết, qua đó ta xácđịnh được hệ thống đang hoạt động như thế nào, quá trình vận hành hệthống ra sao, có những ưu nhược điểm gì,
Từ đó, ta xây dựng lên hệ thống mới, có tính hiệu quả cao hơn so vớihệ thống cũ, và phương pháp vận hành hệ thống có tính thừa kế.
Trong chương này, tất cả các đặc điểm của hệ thống mới đã được xáclập, từ đó, làm nền tảng để thiết kế ở các chương tiếp theo.
Trang 9Chương 2
Thiết kế tổng thể hệ thống cânđộng vật thể
Thiết kế tổng thể cả hệ thống dưới dạng sơ đồ khối: thiết kế phần cứng vàphần mềm, nêu đặc điểm, yêu cầu kỹ thuật của mỗi khối, phương phápgiao tiếp, mức tín hiệu vào ra,
• Nhanh chóng: Tốc độ tàu yêu cầu khi cân là 3 − 15km/h, có nghĩalà trong thời gian đó, phải thu thập đủ dữ liệu để có thể tính toán.Tính toán được khối lượng của mỗi toa bằng cách tính tổng khốilượng trên 2 trục bánh Muốn tính được khối lượng, ta phải dùngthuật toán như lọc, FFT, xác định đỉnh , Tất cả các thuật toántrên đều cần nhiều mẫu mới có thể làm được Tiêu chí đặt ra là ítnhất, cần có khoảng ≥ 100 mẫu/một cụm bánh.
Trang 102.1 Thiết kế phần cứng7
• Ổn định: Trong môi trường cân, có rất nhiều yếu tố ảnh hưởng đếnhệ thống, như mưa gió, sấm sét, mất điện, nhiễu, Các yếu tố đótrực tiếp hoặc gián tiếp gây mất ổn định cho hệ thống Yêu cầu cầnphải hạn chế tối đa sự tác động của ngoại cảnh đến hệ thống, Vậy có những phương pháp nào có thể xây dựng phần cứng mà có thểđạt được các yêu cầu trên?
2.1.1Các phương án thiết kế phần cứng hệ thống
là modul điều khiển trung tâm, có rất nhiều phương án thiết kế modulđiều khiển trung tâm, mỗi phương án đó, sẽ phải thiết kế các modul cònlại sao cho phù hợp.
Dưới đây, chúng ta thiết kế và lựa chọn modul điều khiển trung tâm
Hiển thị
Điều khiển trung tâm
Khuếch đại
Cảm biến khối lượngNguồn nuôi
Hình 2.1: Sơ đồ khối tổng thể
Trang 112.1 Thiết kế phần cứng8Phương án 1:
Sử dụng card chuyển đổi ghép nối máy tính qua khe cắm PCI làm bộchuyển đổi tín hiệu: Card chuyển đổi vào ra số, tương tự của Advantechcó các tính năng sau:
• Vào/ra số 16 bit với mức logic 1 là 5v, mức logic 0 là 0v.• 16 kênh vào tương tự 12 bit với ngưỡng vào điện áp là 0 ÷5v.• 2 kênh ra tương tự 12 bit.
• Tốc độ chuyển đổi ADC tối đa của card là 200kbps (Kilobit PerSecond).
• Có tính năng khuếch đại mềm
• Lựa chọn đọc 1 kênh hoặc nhiều kênh từ bộ đệm chuyển đổi.
• Card ghép nối sử dụng driver khi đọc tín hiệu từ Windows, khi đọctrong DOS thì không cần driver.
Phương án 2:
Sử dụng PLC làm modul điều khiển trung tâm Phương án này rất đượcsự tin tưởng bởi đã được kiểm nghiệm của công ty danh tiếng, các sảnphẩm của họ đã trải qua sự kiểm tra khắc nghiệt khi làm việc với môitrường công nghiệp Có thể kể ra đây các tính năng của PLC như sau:
• Ổn định
• Số lượng tín hiệu vào/ra tùy chọn
• Tín hiệu số ra được điều khiển trực tiếp qua rơle nội.• Tín hiệu số vào: +24v
• Tín hiệu vào tương tự: 0 − 10v hoặc 4 − 20mA• Tín hiệu ra tương tự: 0 − 10v
• Truyền thông với PC bằng cáp MPI hoặc PPI chuyên dụng, giaothức RS232, RS485, ProfiBus, USB
• Phần mềm lập trình nhúng và phần mềm lập trình điều khiển đượchỗ trợ bởi hãng sản xuất.
• Giá thành tùy từng chủng loại, số lượng modul.
Trang 122.1 Thiết kế phần cứng9Phương án 3:
Tự thiết kế card chuyển đổi ADC ghép nối USB Tất cả các tính năngđược thiết kế phù hợp nhất với hệ thống.
• Độ phân dải chuyển đổi ADC• Tốc độ chuyển đổi
• Số lượng tín hiệu vào/ra• Mức tín hiệu vào/ra• Khả năng chống nhiễu
• Khả năng khuếch đại tín hiệu• Tốc độ xử lý
• Giao diện ghép nối
• Phương thức truyền thông
Phương án lựa chọn: Phương án 3
Phân tích:
Tốc độ tàu đi tối đa là 15(km/h) ≈ 4.12(m/s) Khoảng cách giữa haiđiểm gần nhất trên 2 cụm trục liên tiếp là 2.27m, khoảng cách giữa 2điểm tiếp xúc ray là 2.27m Như vậy, thời gian mỗi cụm trục đi quakhoảng 0.5s, trong thời gian này, ta phải lấy được ít nhất khoảng 300mẫu khối lượng Đối với phương án 1, độ phân dải chuyển đổi là 12 bit4096 mức Nếu dùng để cân, thì bước nhảy sẽ là: 120 tấn 4096 mức, hay
4096(mức) = 29.296875(kg) Nếu tín hiệu đọc về không cóbit lỗi, nếu 1 bit hàng đơn vị bị lỗi thì sai số tăng lên gấp 10 lần Đólà sai số tính trên 1 toa nếu tính tổng cả đoàn tàu thì sai số sẽ lớn hơnnữa.
Đối với phương án 2, dùng PLC với ADC 16 bit, phương án này hoàntoàn khả thi, nhưng những modul ADC 16 bit tại Việt Nam rất khókiếm, giá thành rất cao.
Nếu ta tự thiết kế một modul theo phương án 3 thì giá thành sẽ hạxuống rất nhiều, mặt khác ta lại làm chủ công nghệ, bảo hành bảo trìthuận tiện, và thiết kế sẽ bám sát các yêu cầu cụ thể của bài toán.
Trang 132.1 Thiết kế phần cứng102.1.2Sơ đồ tổng thể
Vi ñiều khiển nhúng
Power system
Embedded Microcontroller
Truyền thôngPhần mềm quản lý
Nguồn nuôi
Bàn phímHiển thị
Hình 2.2: Sơ đồ khối tổng thể được chọn
Bộ cảm biến khối lượng (Loadcell), Bộ lọc (Fillter), Khuếch đại (AmpliGain), Chuyển đổi ADC, Bộ vi điều khiển nhúng, Hiển thị, Truyền thông,Nguồn nuôi.
2.1.3Ý nghĩa và yêu cầu kỹ thuật của từng khối
1 Khối cảm biến khối lượng (Loadcell): Khối này là khối quantrọng nhất trong phần cảm biến Nó quyết định vai trò chịu lực củavật đặt lên cân Cần phải chọn loại Loadcell sao khả năng chịu lựccủa bàn cân phải lớn hơn (thường là gấp rưỡi) tổng khối lượng lớnnhất đặt lên bàn cân.
Về bản chất, khối này là một bộ, tập hợp của nhiều Loadcell, bố trítrên bàn cân sao cho tổng khối lượng phân bố đều nhất.
Tín hiệu vào là: +10v, tín hiệu ra là vi sai cầu trở, tạo điện áp lệnhgiữa hai đầu ra để đưa đến bộ khuếch đại.
Trang 142.1 Thiết kế phần cứng11
2 Bộ lọc (Fillter): Khi được cấp điện áp, Modul cảm biến sẽ đưa tínhiệu về tỉ lệ với khối lượng đặt lên đầu cân Tín hiệu có ích rất yếu,điều đó có nghĩa là ảnh hưởng của môi trường rất lớn lên tín hiệu,hay nói cách khác, nhiễu sẽ rất cao.
Để giảm thiểu nhiễu, cần có một bộ lọc, lọc bỏ hết tất cả các tần sốnhiễu nằm ngoài dải, chỉ giữ lại tín hiệu thuộc tần số cần thiết.3 Khuếch đại: Tín hiệu đầu cân là tín hiệu vi sai, tùy theo loại cảm
biến, nhưng trong công nghiệp, các loại loadcell thường có các thamsố như: 20mV/V, có nghĩa là khi chịu tải tối đa, khối cảm biến đưatín hiệu về là 20mV Chúng ta cần khuếch đại tín hiệu đó lên đếngiá trị max của bộ chuyển đổi ADC, thường thì bộ chuyển đổi chấpnhận dải 0 10v, có nghĩa là nhiệm vụ của bộ khuếch đại làm tănghệ số khuếch đại lên 500 lần
4 Bộ chuyển đổi ADC: Khi có tín hiệu đầu vào sau bộ khuếch đại,trong modul này, cũng có thể thiết kế thêm bộ khuếch đại lặp, nhằmđảm bảo tín hiệu đưa vào chuyển đổi là chuẩn nhất.
Xét về độ chính xác, modul này rất quan trọng, nó quyết định saisố của hệ thống Nếu chúng ta chọn độ phân dải thấp thì bước nhảycủa kết quả sẽ rất lớn, tức là sai số nhiều, và ngược lại, độ phân dải
Ví dụ: Nếu chúng ta cần cân 900kg
• Nếu chọn đọ phân dải là 2 bit, thì chúng ta có các giá trị số: 0,1, 2, 3 và các giá trị khối lượng tương ứng là: 0, 300, 600, 900(kg) Bước nhảy và cũng là sai số có thể xảy ra là ≈ 300(kg).• Nếu chúng ta chọn độ phân dải là 3 bit,thì bước nhảy sẽ là: 0,
1, 2, 3, 4, 5, 6, 7 và giá trị bước nhảy của cân tương ứng sẽ là:900/7 ≈ 128.57(kg) Có nghĩa là nếu độ phân dải là 3 bit, thì sẽchính xác hơn nhiều so với dùng độ phân dải 2 bit.
Từ đó, theo sai số cho phép là 0.5% của 120 tấn:Sai số = 0.5% ∗ 120(tấn) = 0.6(tấn)chúng ta sẽ tính toán được độ phân dải cần thiết sẽ là:
600(kg) ∗ X(bước nhảy) = 120.000(kg)
n
Trang 152.2 Thiết kế phần mềm12
Trong đó: X: Số bước nhảy, n: Số bit (độ phân dải).
Để tăng độ chính xác, ta nâng cao độ phân dải lên 12 bit, thì sai sốphép cân sẽ là:
5 Bộ vi điều khiển nhúng: là một hệ vi xử lý, có khả năng điềukhiển quá trình chuyển đổi AD, truyền thông với PC và giao tiếpvới các modul mở rộng như bàn phím (dùng để chỉnh zero, calibđộng, ) và modul hiển thị trực tiếp (không thông qua PC) Mộtphần rất quan trọng nữa, đó là giao tiếp được với máy tính, để giaotiếp với máy tính, có thể tùy chọn các chuẩn truyền thông: USB,RS232, RS485, ProfiBus,
6 Hiển thị: Hiển thị giá trị đọc được theo thời gian thực của giá trịcân, nhằm xác định được trạng thái hoạt động của hệ thống.
7 Truyền thông: Là một modul riêng, kết nối giữa máy tính vớiPC, tuân thủ theo chuẩn truyền thông giữa PC và Bộ vi điều khiểnnhúng.
8 Nguồn nuôi: Cung cấp nguồn cho toàn bộ hệ thống: 220v, 0v, 5v,10v, 12v, 24v,
UML là ngôn ngữ mô hình hoá, trước hết nó mô tả ký pháp thống nhất,ngữ nghĩa các định nghĩa trực quan tất cả các thành phần của mô hình.
Trang 162.2 Thiết kế phần mềm13
UML được sử dụng để hiển thị, đặc tả, tổ chức, xây dựng và làm tài liệucác vật phẩm (artifacts) của tất cả các giai đoạn trong quá trình pháttriển phần mềm hướng đối tượng, đặc biệt là hai giai đoạn chính phântích, thiết kế dưới dạng các báo cáo, biểu đồ, bản mẫu hay các trangweb, v.v UML là ngôn ngữ mô hình hoá độc lập với các công nghệ phát
Nói cách khác, UML là ngôn ngữ mô hình hoá, ngôn ngữ đặc tả vàngôn ngữ xây dựng mô hình trong quá trình phát triển phần mềm, đặcbiệt là trong phân tích và thiết kế hệ thống hướng đối tượng UML làngôn ngữ hình thức, thống nhất và chuẩn hoá mô hình hệ thống mộtcách trực quan Nghĩa là các thành phần trong mô hình được thể hiệnbởi các ký hiệu đồ hoạ, biểu đồ và thể hiện đầy đủ mối quan hệ giữa cácchúng một cách thống nhất và có logic chặt chẽ.
2.2.1Xác định các yêu cầu và phân tích hệ thống
Từ các yêu cầu của khách hàng, chúng ta xác định được các mục tiêucủa phần mềm cần phát triển Thường đó là các yêu cầu chức năng vềnhững gì mà hệ thống phải thực hiện, nhưng chưa cần chỉ ra các chứcnăng đó thực hiện như thế nào Việc xác định đúng và đầy đủ các yêucầu của bài toán là nhiệm vụ rất quan trọng, nó làm cơ sở cho tất cả cácbước tiếp theo trong dự án phát triển phần mềm Muốn vậy, thì phảithực hiện đặc tả chi tiết các yêu cầu của hệ thống UML cung cấp biểuđồ ca sử dụng để đặc tả các yêu cầu của hệ thống Tài liệu đặc tả cácyêu cầu được sử dụng để:
• Làm cơ sở để trao đổi với người sử dụng, để thảo luận giữa cácnhóm thành viên trong dự án phát triển phần mềm về những gì màhệ thống sẽ phải thực hiện (và cả những gì nó không cần thực hiện).• Làm căn cứ cơ bản để kiểm tra, thử nghiệm trong các bước tiếp theo
của quá trình phát triển phần mềm.
Muốn đạt được các mục tiêu trên thì quá trình phải thực hiện:• Xác định và hiểu rõ miền, phạm vi của bài toán: Những người phát
triển sẽ xây dựng hệ thống theo sự hiểu biết của họ như thế nào vềnhững yêu cầu của khách hàng và những khái niệm cơ sở của bàitoán ứng dụng.
• Nắm bắt các yêu cầu: Người phân tích phải nắm bắt được tất cả các
Trang 172.2 Thiết kế phần mềm14
nhu cầu của khách hàng bằng cách phải trao đổi với mọi người cóliên quan đến dự án, tham khảo các tài liệu liên quan Thông quaviệc thảo luận, trao đổi với khách hàng, các chuyên gia của lĩnh vựcứng dụng và những người đã, đang sử dụng những hệ thống có sẵn,ta có thể phát hiện và nắm bắt được các yêu cầu của họ Phươngpháp trừu tượng hoá giúp ta dễ dàng nắm bắt được các yêu cầu củahệ thống.
• Phân loại: Vấn đề quan trọng nhất trong giai đoạn này là phải hiểurõ các yêu cầu đã được xác định Muốn vậy, ta phải tìm cách phânloại chúng theo tầm quan trọng, hay chức năng chính của nhữngngười sử dụng và của khách hàng.
• Thẩm định: Kiểm tra xem các yêu cầu có thống nhất với nhau vàđầy đủ không, đồng thời tìm cách giải quyết các mối mâu thuẫn giữacác yêu cầu nếu có.
• Nghiên cứu tính khả thi: Tính khả thi của một dự án tin học phảiđược thực hiện dựa trên các yếu tố bao gồm các khía cạnh tài chính,chiến lược, thị trường, con người, đối tác, kỹ thuật, công nghệ vàphương pháp mô hình hoá, v.v Nói chung, không có một qui tắchướng dẫn cụ thể để biết khi nào công việc phân tích các yêu cầusẽ kết thúc và quá trình phát triển có thể chuyển sang bước tiếptheo Nhưng có thể dựa vào các câu trả lời cho những câu hỏi sauđể chuyển sang bước tiếp theo.
• Khách hàng, người sử dụng (NSD) và những người phát triển đãhiểu hoàn toàn hệ thống chưa?
• Đã nêu được đầy đủ các yêu cầu về chức năng (dịch vụ), đầu vào /ra và những dữ liệu cần thiết chưa?
Bức tranh chung trong pha phân tích các yêu cầu của hệ thống có thể
của hệ thống là rất quan trọng, nó ảnh hưởng rất lớn tới chất lượng củasản phẩn sau này.
2.2.2Phân tích hệ thống hướng đối tượng
Phân tích hướng đối tượng (OOA): là một giai đoạn của quá trình pháttriển phần mềm, trong đó mô hình khái niệm được mô tả chính xácthông qua các đối tượng thực và các khái niệm của bài toán ứng dụng.
Trang 182.2 Thiết kế phần mềm15
Người phát triển hệ thống
Khách hàng, Các chuyên gia hệ thống
Người sử dụng (NSD)
Hiểu rõ các yêu cầu
Nắm bắt các yêu cầu
Tài liệu ñặc tả yêu cầu và bước tiếp theo
Nghiên cứutính khả thi
Thẩm
Mô tảcác yêu cầu
Hình 2.3: Mối quan hệ giữa các công việc trong pha phân tích các yêu cầu
Phân tích hướng đối tượng tập trung vào việc tìm kiếm các đối tượng,khái niệm trong lĩnh vực bài toán và xác định mối quan hệ của chúngtrong hệ thống.
Nhiệm vụ của khâu phân tích là nghiên cứu kỹ các yêu cầu của hệthống và phân tích các thành phần của hệ thống cùng các mối quan hệcủa chúng Trong khâu phân tích hệ thống chủ yếu trả lời câu hỏi:
• Hệ thống gồm những thành phần, bộ phận nào?• Hệ thống cần thực hiện những cái gì?
Kết quả chính của pha phân tích hệ thống hướng đối tượng là biểuđồ lớp, biểu đồ trạng thái, biểu đồ trình tự, biểu đồ cộng tác và biểu đồthành phần.
2.2.3Thiết kế hệ thống hướng đối tượng
Dựa vào các đặc tả yêu cầu và các kết quả phân tích (các biểu đồ nêutrên) để thiết kế hệ thống Thiết kế hướng đối tượng (OOD) là một giaiđoạn trong quá trình phát triển phần mềm, trong đó hệ thống được tổchức thành tập các đối tượng tương tác với nhau và mô tả được cách đểhệ thống thực thi nhiệm vụ của bài toán ứng dụng Trong khâu thiết kếhệ thống hướng đối tượng chủ yếu trả lời câu hỏi:
Trang 192.2 Thiết kế phần mềm16
• Làm như thế nào?
• Trong hệ thống có những lớp đối tượng nào, trách nhiệm của chúnglà gì?
• Các đối tượng tương tác với nhau như thế nào?
• Các nhiệm vụ mà mỗi lớp đối tượng phải thực hiện là gì?
• Dữ liệu nghiệp vụ và các giao diện được xây dựng như thế nào?• Kiến trúc và cấu hình của hệ thống?
Nhiệm vụ chính của thiết kế hệ thống là:
• Xây dựng các thiết kế chi tiết mô tả các thành phần của hệ thống ởmức cao hơn khâu phân tích, thiết kế giao diện để phục vụ cho việccài đặt Nghĩa là, các lớp đối tượng được định nghĩa chi tiết gồmđầy đủ các thuộc tính, các thao tác phục vụ cho việc cài đặt bằngngôn ngữ lập trình hướng đối tượng được lựa chọn ở các bước sau.• Đồng thời đưa ra được kiến trúc (là trọng tâm) của hệ thống để đảm
bảo cho hệ thống có thể thay đổi, có tính mở, dễ bảo trì, thân thiệnvới NSD, v.v Nghĩa là tổ chức các lớp thành các gói hoặc các hệthống con theo một kiến trúc phù hợp với nhu cầu phát triển củacông nghệ (mạng, phân tán, v.v.) đồng thời phù hợp với xu thế pháttriển của lĩnh vực ứng dụng.
• Thiết kế CSDL, có thể chọn mô hình quan hệ hay mô hình đối tượng.Bởi vì tồn tại nhiều mô hình dữ liệu khác nhau, nên khi xây dựng hệthống phần mềm lớn chúng ta phải thiết kế các phương án tích hợpdữ liệu từ nhiều nguồn khác nhau, nghĩa là những khả năng chuyểnđổi, kết hợp các mô hình dữ liệu đó với nhau.
Những kết quả trên được thể hiện trong các biểu đồ: biểu đồ lớp (chitiết), biểu đồ hành động, biểu đồ thành phần và biểu đồ triển khai.
Tất cả các kết quả thiết kế phải được ghi lại thành các hồ sơ, tài liệucho hệ thống Trong các tài liệu thiết kế phải mô tả cụ thể những thànhphần nào, làm những gì và làm như thế nào.
2.2.4Lập trình hướng đối tượng
Trong giai đoạn này, mỗi thành phần đã được thiết kế sẽ được lập trìnhbằng ngôn ngữ lập trình hướng đối tượng được lựa chọn thành những
Trang 202.3 Tổng kết chương17
Thiết kế chi tiết:
Làm mịn dần các thành phần, Cách thực hiện của mỗi thành phần Thiết kế các mối quan hệ
Kiến trúc tổng quát và trừu tượng hoá
Mô hình khái niệm, Đặc tả các yêu cầu
Thiết kế logic:
Phân chia các thành phần, Nhiệm vụ các thành phần Quan hệ giữa các thành phần
Kiến trúc chi tiết, cụ thể và phụ thuộc vào vài đặt: khung của hệ thống
Hình 2.4: Thiết kế logic và thiết kế chi tiết
mô đun chương trình (chương trình con) Mỗi mô đun này sẽ được kiểmđịnh hoặc thử nghiệm theo các tài liệu đặc tả của giai đoạn thiết kế.Công việc này được mô tả như sau:
Lập trình (Xây dựng các lớp)
Đặc tả thiết kế Tập các mô đun chương trình
Ở chương này, ta chỉ xét đến chức năng các module, các yêu cầu đầuvào/ra, sự liên kết giữa các module, phân chia công việc giữa phần mềmvà phần cứng, yêu cầu kỹ thuật,các điều kiện giới hạn của module,
Trang 21Sau khi đã nghiên cứu ký lưỡng, chi tiết, tỉ mỉ về yêu cầu của hệ thốngmới, chúng ta có thể đưa ra được sơ đồ nguyên lý dạng chi tiết đến từng
phần ngoại vi như: bộ biến đổi điện áp, cơ cấu gá lắp Loadcell, cáp vàcách chọn cáp tín hiệu,
Để chi tiết hơn, dưới đây tôi xin trình bày về phần cơ khí trước.
gá lên các tà vẹt Tuy ngành đường sắt cũng đã rất cố gắng để trongquá trình tàu chạy, các tà vẹt không nún, nhưng chỉ bằng phương pháptrải đá 34 thì không thể tránh khỏi hiện tượng là các tà vẹt vẫn nún khicó tàu chạy qua, đặc biệt là tàu chở đầy hàng.Để không bị nún khi cân,chúng ta cần thiết kế một bàn cân Bàn cân được thiết kế bằng bê tông,đúc dày đặc khoảng 50cm, rộng gấp đôi khoảng cách giữa 2 tà vẹt, vàdài gấp đôi khoảng cách tiếp đất của 2 bánh tàu trên cùng một trục.
Trang 223.1 Thiết kế phần cứng hệ thống19
Chiều dài bàn cân
Hình 3.1: Thiết kế cơ khí gá lắp Loadcell
L
Hình 3.2: Khoảng cách 2 bánh tàu trên một trục
đó L là khoảng cách giữa hai bánh trên một cụm, L = 2.27m Như vậy,chiều dài bàn cân, tối thiểu phải là 4.54m Để đảm bảo an toàn, ta chọnchiều dài bàn cân là 6m Do khoảng cách giữa hai điểm gần nhất củahai bánh tàu là 9.5m, nên hoàn toàn yên tâm.
Độ dày của khối bê tông, phải đủ lớn để đảm bảo đặt toa tàu có khốilượng 120 tấn lên thường xuyên mà không bị hỏng Vấn đề sức bền cơkhí, sẽ có một kỹ sư cơ khí thiết kế theo ý tưởng trên.
Từ thiết kế sơ đồ khối tổng thể, ta xác định đầu vào/ra và thiết kế
Trong sơ đồ này, ta xác định được đầu vào/ra, mạch nguồn vào, bànphím chỉnh định, module khuếch đại, hai module hiển thị, giao tiếp vớiPC,
Trang 23LK2CO
Trang 243.1 Thiết kế phần cứng hệ thống213.1.1Khối cảm biến
kế đầy đủ khối cảm biến bao gồm: Loadcell, khuếch đại Tín hiệu ra phải
Hình 3.4: Sơ đồ nguyên lý Loadcell
vấn đề chính là mạch cầu trở, theo sơ đồ đó, khi có một lực kéo hay néntác động lên Loadcell, cầu trở sẽ mất cân bằng, làm cho điện áp chảyqua mạch thay đổi.
Tín hiệu ra S+ và S- tùy thuộc vào mỗi lại Loadcell nhưng hầu hết trongcông nghiệp thường chọn loại 20mV/V, hoặc 4 ÷ 20mA Có nghĩa là nếuchúng ta dùng Loadcell loại 15 tấn, và chúng ta đặt khối lượng là 15 tấnlên Loadcell thì đầu ra (vi sai) giữa S+ và S- là 20mv hoặc 20mA, cònkhi bỏ lửng Loadcell thì đầu ra là 0mV hay 4mA.
Theo những đặc tính trên thì ta thiết kế được một bộ khuếch đại, nhưhình 3.5.
là 0 10V hoặc 0 5v, vì một số dòng chuyển đổi ADC mới hiện nay chỉchấp nhận tín hiệu đầu vào trước khi chuyển đổi là 0 5v.
Phân tích nguyên lý hoạt động của mạch: Chân S+ và S- là haitín hiệu vào từ Loadcell, trong quá trình truyền dẫn, có thể tín hiệu vềđến bộ khuếch đại không thực sự cân bằng, hoặc do khối lượng bì, làm
bởi WR1 Tín hiệu sau đó được lọc nhiễu sơ bộ rồi qua mạch khuếch đạiâm, lọc và khuếch đại đảo lại để lấy tín hiệu (+) tại đầu ra Tín hiệu ra
Trang 2512
Trang 26Khối này không có sự can thiệp của phần mềm.
3.1.2Khối chuyển đổi ADC
Khối chuyển đổi AD (AD: Analog to Digital; ADC: Analog to DigitalConverter) có nhiều phương án thiết kế, song ta cần chọn phương ánđơn giản nhất, đảm bảo hiệu quả, tốc độ, độ ổn định và tương thích tín
Sơ đồ này tổng hợp cả các module khác, vậy nên ta tách ra cho dễ nhìn,
Weight dispSpeed 2 PIC
Hình 3.6: Sơ đồ nguyên lý khối AD
Khối ADC được nhúng vào vi điều khiển nên cần có thuật toán đọcAD Trong khối này, ta có đưa vào 2 tín hiệu là khối lượng và tốc độ.
Vi điều khiển ta chọn phải là loại tốc độ cao, trong họ vi điều khiển8 bit, có vi mạch PIC18F4550 Vi điều khiển PIC18F4550 có tốc độ xửlý lên đến 48MHz do vậy về tốc độ xử lý ta hoàn toàn yên tâm, khôngcần lo lắng!
Chọn ngôn ngữ C để lập trình cho PIC, vì C là ngôn ngữ có cấu trúcrất rõ ràng, và sát với ngôn ngữ bậc thấp, hỗ trợ nhiều thư viện,
Theo thuật toán trên, ta viết phần mềm nhúng cho PIC, chương trình
unsigned intADC_Read(unsigned char ch){unsigned int value=0;
setup_adc(ADC_CLOCK_INTERNAL);setup_adc_ports( ALL_ANALOG );set_adc_channel(ch);
Trang 273.1 Thiết kế phần cứng hệ thống24
Begin ADC
Kênh cần đọc: ch
- Chọn kênh (ch)
- Phát tín hiệu bắt đầu chuyển đổi
Chuyển đổi xong ?
Ví dụ sau dùng để kiểm tra sự hoạt động của ADC:#include <built_in.h>
unsigned int adc_rd;void main() {
TRISA= 0xFF;// PORTA is inputANSEL= 0x07;// Configure as analogTRISC= 0x00;// Pins PORTC are outputsTRISB= 0x00;// PORTB is output
tin đọc được từ khối cảm biến sẽ được thể hiện trên khối hiển thị vàtruyền lên PC.
Trang 283.1 Thiết kế phần cứng hệ thống25
Nguyên lý hoạt động của khối này là dùng phương pháp chuyển đổi tínhiệu nối tiếp sang song song, dựa trên thanh di dịch 74595 Phương phápnày rất hay, ở chỗ là nó có thể vừa là bộ chuyển đổi nối tiếp sang songsong, vừa là bộ chốt đệm dữ liệu hiển thị, làm cho ảnh hiển thị tĩnh vàsáng đều.
PIU701 PIU702 PIU703 PIU704 PIU705 PIU706 PIU707
PIU801 PIU802 PIU803 PIU804 PIU805 PIU806 PIU807
PIU901 PIU902 PIU903 PIU904 PIU905 PIU906 PIU907
Hình 3.8: Sơ đồ nguyên lý mạch hiển thị
Hình 3.9: Mạch hiển thị khối lượng và tốc độChương trình con hiển thị dữ liệu từ bộ đệm ra LED 7 thanh:// Display Buffer array to LED
void LED7Display(){const int8 L7[12]={
Trang 293.1 Thiết kế phần cứng hệ thống260x88,0xEB,0x4C,0x49,0x2B,0x19,0x18,0xCB,0x8,0x9,0x7F,0xFF
#define black 11#define negative 10
#define clock {output_bit(SH_CP,0);output_bit(SH_CP,1);}#define out1bit output_bit(DI,buffer[k]&1);
#define ST_CP PIN_B2#define SH_CP PIN_B1#define DI PIN_B0int8 k,k1,so0;
buffer[7]=L7[(W /1000)%10];buffer[6]=L7[(W / 100)%10];buffer[5]=L7[(W /10)%10];buffer[4]=L7[(W)%10];buffer[3]=L7[(SP/1000)%10];buffer[2]=L7[(SP/ 100)%10];buffer[1]=L7[(SP/10)%10];buffer[0]=L7[(SP)%10];so0=1;
if((buffer[7]==L7[0])&&(so0)){buffer[7]=L7[black];}else so0=0;if((buffer[6]==L7[0])&&(so0)){buffer[6]=L7[black];}else so0=0;if((buffer[5]==L7[0])&&(so0)){buffer[5]=L7[black];}
if((buffer[3]==L7[0])&&(so0)){buffer[3]=L7[black];}else so0=0;if((buffer[2]==L7[0])&&(so0)){buffer[2]=L7[black];}else so0=0;if((buffer[1]==L7[0])&&(so0)){buffer[1]=L7[black];}
out1bit clockbuffer[k]>>=1;}}
Hình 3.10: Bàn phím chỉnh tham số gốc
Phím bấm
Phím bấm dùng để nhập các thôngtin đầu vào ngay trên khối chuyểnđổi, có thể nhập các tham số nhưthay đổi số lượng mẫu cần lấy, calibđộng, bù nhiệt, Để đọc được giá trịcủa phím bấm, ta sử dụng thuật toánquét từng hàng và đọc từng cột, nếucó sự khác biệt so với mặc định là cóphím được bấm.
Trang 303.1 Thiết kế phần cứng hệ thống273.1.3Khối truyền thông
Khối truyền thông sẽ được thiết kế sao cho hoạt động nhanh nhất, ít lỗinhất đảm bảo được truyền thông với lượng mẫu theo yêu cầu của thuậttoán.
Có rất nhiều phương pháp lựa chọn truyền thông, như truyền thôngRS232, RS485, ProfiBus, Nhưng cách hợp lý nhất chính là truyền
Hình 3.11: Truyền thông USB
Để truyền thông được qua giao thức USB, chúng ta dùng chuẩn HID,tốc độ hoạt động của chip phải là 48MHz (với truyền thông USB 2.0,full speed) [14]
Phần mềm nhúng truyền thông USB, cần có các hàm: Hid Enable,Hid Read, Hid Write, Hid Disable.
Với cấu trúc:Hid Enable
Khai báo: void Hid Enable(unsigned readbuff, unsigned writebuff);Trả về: không
Diễn tả: Cho phép giao tiếp USB HID Tham số readbuff và writebufflà Buffer Đọc và Viết Buffer, tương ứng, mà được sử dụng để giao tiếpHID.
Chức năng này cần phải được gọi trước khi sử dụng các hàm khác của
Trang 31Khai báo: unsigned char Hid Read(void);
Trả về: Số lượng các ký tự trong Đọc Buffer nhận được từ các máy chủ.Diễn tả: Nhận được tin nhắn từ máy chủ và lưu nó trong bộ đệm đọc.Hàm trả về số lượng các ký tự nhận được trong bộ đệm đọc.
Yêu cầu: USB HID cần phải được kích hoạt trước khi sử dụng chức năngnày.
Ví dụ: get = Hid Read();Hid Write
Khai báo: unsigned short Hid Write(unsigned writebuff, unsigned shortlen);
Trả về: Nếu việc truyền dữ liệu đã không thành công, hàm trả về 0 Nếukhông, nó trả về số lượng byte truyền được
Diễn tả: Hàm gửi dữ liệu từ Buffer Viết writebuff đến máy chủ ViếtBuffer có cùng một tham số như được sử dụng trong khởi tạo; xemHid Enable Len tham số cần để xác định chiều dài của dữ liệu sẽ đượctruyền
Yêu cầu: USB HID cần phải được kích hoạt trước khi sử dụng chức năngnày.
Ví dụ:
// Thử đến khi thành công:while (!HID Write(writebuff, 1));
Hid Disable
Khai báo: void Hid Disable(void);Trả về: không
Diễn tả: Ngắt giao tiếp USB
Yêu cầu: USB HID cần phải được kích hoạt trước khi sử dụng chức năngnày.
Ví dụ: Hid Disable();
Đoạn mã nguồn dùng để kiểm tra việc truyền thông:
Ví dụ sau liên tục gửi các số 0 255 đến PC qua USB(Universal Serial Bus) usbdsc.c phải được baogồm trong dự án.
unsigned short m, k;
unsigned short userRD_buffer[64];
Trang 323.1 Thiết kế phần cứng hệ thống29unsigned short userWR_buffer[64];
// Disable all interrupts
// Disable GIE, PEIE, TMR0IE, INT0IE,RBIEINTCON = 0;
INTCON2 = 0xF5;INTCON3 = 0xC0;
// Disable Priority Levels on interruptsRCON.IPEN = 0;
PIE1 = 0;PIE2 = 0;PIR1 = 0;PIR2 = 0;
// Configure all ports with analog function as digitalADCON1 |= 0x0F;
// Ports ConfigurationTRISA = 0;
TRISB = 0;TRISC = 0xFF;TRISD = 0xFF;TRISE = 0x07;LATA = 0;LATB = 0;LATC = 0;LATD = 0;LATE = 0;
// Clear user RAM
// Banks [00 07] ( 8 x 256 = 2048 Bytes )asm {
LFSRFSR0, 0x000MOVLW0x08
CLRFPOSTINC0, 0CPFSEQFSR0H, 0BRA$ - 2}
// Timer 0T0CON= 0x07;
TMR0H= (65536-156) >> 8;TMR0L= (65536-156) & 0xFF;
INTCON.T0IE = 1;// Enable T0IET0CON.TMR0ON = 1;
for (k = 0; k < 255; k++) {// Prepare send bufferuserWR_buffer[0] = k;// Send the number via USB
Trang 333.2 Thiết kế hướng đối tượng phần mềm hệ thống [2]30Hid_Write(&userWR_buffer, 1);
} while (1);Hid_Disable();}
3.1.4Khối nguồn
//————————————————-Khối nguồn là khối cần đến sự ổn định của điện áp, đảm bảo điện ápđúng thiết kế để cung cấp cho toàn bộ mạch Khối nguồn được thiết kếtheo sơ đồ hình 3.12[15]
Phần mềm là một sản phẩm được phát triển hay được kỹ nghệ hoá vàđược chế tạo tương tự như các sản phẩm công nghiệp (phần cứng) khác.Phát triển phần mềm và chế tạo phần cứng cũng có những điểm tươngđồng: đều là sản phẩm và chất lượng của chúng phụ thuộc nhiều vào
Trang 343.2 Thiết kế hướng đối tượng phần mềm hệ thống [2]31
Hình 3.13: Mô phỏng tín hiệu điện của khối nguồn
thiết kế, hơn nữa lại phụ thuộc cơ bản vào con người Tuy nhiên phầnmềm và phần cứng lại có nhiều điểm đặc trưng rất khác nhau.
• Qui trình và phương pháp tổ chức thực hiện để sản xuất ra chúngrất khác nhau,
• Các giai đoạn chế tạo ra phần cứng có thể xác định và có khả năngđiều chỉnh được chất lượng của sản phẩm còn đối với phần mềm thìkhông dễ gì thay đổi được,
• Mối quan hệ giữa người sử dụng và công việc cần thực hiện với từngloại sản phẩm là hoàn toàn khác nhau,
• Cách tiếp cận để xây dựng, chế tạo các sản phẩm cũng khác nhau.Khả năng nhân bản của chúng là hoàn toàn trái ngược nhau Việcbảo vệ bản quyền sản phẩm phần mềm là cực kỳ khó khăn vì khảnăng sao chép thành nhiều bản giống nhau là có thể thực hiện được(tương đối dễ).
• Phần mềm khác hẳn với phần cứng là không bị hư hỏng theo thờigian, không bị tác động của môi trường (thời tiết, nhiệt độ, điềukiện, v.v ) Do vậy, đối với phần cứng việc bảo hành là đảm bảonó hoạt động được như mới còn đối với phần mềm thì lại khác hẳn.
Trang 353.2 Thiết kế hướng đối tượng phần mềm hệ thống [2]32
Bảo hành, bảo trì phần mềm là bảo đảm cho hệ thống hoạt độngđúng với thiết kế và đáp ứng yêu cầu sử dụng của khách hàng Chínhvì thế mà công bảo hành phần mềm là rất tốn kém, do đó đòi hỏiphải tập trung nhiều hơn vào khâu phân tích, thiết kế hệ thống.Mọi hệ thống phần mềm cũng như các hệ thống khác không thể tồn tạiđộc lập mà nó luôn hoạt động và tồn tại trong một môi trường, tươngtác với thế giới xung quanh Như vậy, một hệ thống có thể xem như làhệ thống con của một hệ thống khác và bản thân nó lại có thể chứa mộtsố các hệ thống con khác nhỏ hơn.
Công nghệ phần cứng phát triển nhanh cả về chất lượng và tốc độ xửlý với giá thành ngày một hạ trong khi giá phần mềm lại rất cao Đểphát triển được những hệ thống phần mềm đáp ứng được những yêu cầutrên thì đòi hỏi phải áp dụng lý thuyết, kỹ nghệ, phương pháp và côngcụ mới để tạo ra một qui trình phát triển phần mềm thống nhất Nhưvậy, công nghệ phần mềm (CNPM) là đề cập đến các lý thuyết, phươngpháp luận và các công cụ cần thiết để phát triển phần mềm Mục đíchcủa CNPM là làm ra những phần mềm chất lượng cao, tin cậy với mộthạn chế về nguồn lực, theo đúng một lịch trình đặt trước, phù hợp vớingân sách dự kiến và đáp ứng các yêu cầu người dùng Hơn nữa, CNPMkhông chỉ là phải làm ra hệ thống phần mềm mà phải làm được các hồsơ, tài liệu như các tài liệu thiết kế, tài liệu hướng dẫn sử dụng, v.v làmcơ sở để bảo trì và mở rộng, phát triển hệ thống sau này.
Tóm lại, để xây dựng được những hệ thống phần mềm đáp ứng nhữngyêu cầu trên, chúng ta cần phải:
• Có một qui trình phát triển phần mềm thống nhất gồm các bướcthực hiện rõ ràng, mà sau mỗi bước đều phải có các sản phẩm cụthể;
• Có các phương pháp và kỹ nghệ phù hợp với từng pha thực hiệnphát triển phần mềm;
• Có công cụ để làm ra sản phẩm phần mềm theo yêu cầu.
3.2.1Khảo sát, xác định các yêu cầu
đây chỉ chú trọng đến thiết kế phần mềm.
Trang 363.2 Thiết kế hướng đối tượng phần mềm hệ thống [2]333.2.2Phân tích hệ thống
Từ yêu cầu của công ty về các thông tin cần có của mỗi chuyến hàng,và từ các mẫu biểu thu được trong quá trình khảo sát, ta đưa ra đượccác thông tin cần thiết sau:
• Biểu đồ trình tự• Biểu đồ cộng tác• Thiết kế lớp chi tiết• Biểu đồ thành phần• Biểu đồ triển khai
Trang 373.2 Thiết kế hướng đối tượng phần mềm hệ thống [2]34
Dưới đây, chúng ta phát triển hệ thống từng bước:1 Mô tả bài toán:
Hệ thống cân động gồm có 4 bộ phận chính: Bộ phận bán hàng, bộphận mua hàng, bộ phận cân, giám định và hệ thống phần cứng +phần mềm đáp ứng các yêu cầu cân động.
Bộ phận bán hàng có nhiệm vụ cung cấp than theo yêu cầu của bênmua hàng, khi tàu cập trạm, cần có một tổ chịu trách nhiệm xúcthan đầy các toa Xuất hoá đơn bán hàng cùng phiếu cân có xácnhận của tổ giám định hai bên.
Bộ phận mua hàng có nhiệm vụ thanh toán theo hoá đơn đã đượcthoả thuận trước Bốc dỡ than xuống khỏi tàu Cử cán bộ giám địnhđể giám định cùng với bên bán than tại cị trí cân.
Hệ thống của chúng ta gồm cả phần cứng và phần mềm Nên việcxây dựng hệ thống phần mềm cần gắn liền với hệ thống phần cứng.Người vận hành có thể phải hiểu được cách vận hành của cả phầncứng lẫn phần mềm.
Bộ phận dám định chính là cán bộ của phòng KCS của cả hai côngty Bộ phận này có nhiệm vụ là xác định những thông tin ghi trênphiếu cân là chính xác.
Hệ thống phần cứng và phần mềm có nhiệm vụ: khi tàu đến bàncân, cần xác định được tàu đi theo hướng nào (Hướng từ ga đi cóhàng hay hướng về ga không hàng), xác định được đầu tàu, xác địnhđược khối lượng của từng toa, xác định được mã toa, xác định đượctoa rỗng,
Khi tàu đến bàn cân, Loadcell dưới gầm của ray sẽ chịu trách nhiệmchuyển khối lượng của các toa tàu thành tín hiệu điện vi sai trongthời gian thực, và tỷ lệ với khối lượng của toa.
Tín hiệu điện vi sai được chuyển đến bộ khuếch đại tín hiệu theochuẩn đầu vào của hệ thống chuyển đổi ADC, lọc nhiễu rồi đưathẳng đến bộ chuyển đổi ADC.
Bộ chuyển đổi ADC có chức năng chuyển tín hiệu điện tương tựthành tín hiệu số, đóng gói rồi truyền về máy tính.
Máy tính nhận dữ liệu, giải mã rồi đưa vào modul lọc nhiễu, rồi đưa
Trang 383.2 Thiết kế hướng đối tượng phần mềm hệ thống [2]35
đến bộ nhớ chung Trong bộ nhớ chung, có nhiều tiến trình chia sẻthông tin này, như: tính khối lượng, hiển thị lên giao diện, Bướccuối cùng là lưu dữ liệu vào CSDL.
Khi người vận hành yêu cầu báo cáo, hệ thống sẽ lấy dữ liệu tạiCSDL theo truy vấn của người vận hành, điền vào phiếu cân và inra theo yêu cầu
Nếu cần báo cáo theo tháng, theo quý, theo năm, hệ thống sẽ dựatheo truy vấn và tính toán rồi đưa ra kết quả tổng kết.
2 Biểu đồ ca sử dụng:
• Các tác nhân : Bằng những khảo sát hệ thống theo thực tế,quá trình xây dựng và thiết kế tổng thể hệ thống, ta xác địnhđược các tác nhân như sau:
– Bên bán hàng: Có trách nhiệm cung cấp hàng theo nhu cầubên mua
– Bên mua hàng: Nhận hàng từ bên bán, trả tiền theo hợp đồng.– Hệ thống cân: Xác định chính xác lượng hàng hoá vận chuyển
– Bên giám định: Xác định, thống nhất thông tin giữa hệ thống,bên bán và bên mua.
• Các ca sử dụng : chúng ta xác định ca sử dụng (những côngviệc) hệ thống cần phải thực hiện như sau:
– Tàu chạy vào bàn cân: lái tàu cần cho tàu chạy đúng vận tốcquy định (từ 3km/h đến 15km/h).
– In phiếu cân: in phiếu cân hiện tại của chuyến tàu vừa đi qua.– Vấn tin: truy vấn thông tin theo ngày, tuần, quý, năm để phục
Trang 393.2 Thiết kế hướng đối tượng phần mềm hệ thống [2]36
Thống kê tháng
Chuyển ñổi Nhân
viên vận hành
Tàu và nhân viên lái tàu
Hình 3.14: Biểu đồ ca sử dụng
các nhiệm vụ: nếu tàu đến (trọng lượng vượt ngưỡng) thì bắtđầu đọc liên tục tín hiệu từ đầu cân, chuyển đổi thành tínhiệu số, đóng gói thành dạng tin ngắn nhất, an toàn nhất,khả năng phát hiện lỗi cao và nhanh nhất, rồi truyền lên máytính.
– Truyền thông: trên phần mềm, module này có nhiệm vụ nhậntín hiệu được truyền lên từ phần nhúng, giải mã tín hiệu, kiểmtra lỗi, lọc nhiễu và đưa tín hiệu vào bộ nhớ chung.
– Thuật toán: module này áp dụng một thuật toán tối ưu chobài toán này, tính toán khối lượng từ thông tin nhận được tạibộ nhớ chung, xác định có bao nhiêu toa, mỗi toa bao nhiêukg, tính vận tốc của tàu, hướng tàu Trả lại kết quả cho bộnhớ chung.
– Trung tâm: tính toán khối lượng tổng, xác định vận tốc max,min, toa rỗng, đầu tàu; lưu thông tin vào CSDL
– Màn hình: lấy thông tin từ bộ nhớ chung để hiển thị lên giaodiện.
– Báo cáo: căn cứ vào câu truy vấn, theo thông tin từ bộ nhớchung (nếu truy vấn dữ liệu hiện tại) và CSDL, module nàysẽ tìm kiếm và điền đầy đủ thông tin cho báo cáo.
• Biểu đồ lớp và mối quan hệ giữa các lớp: được chỉ rõ nhưhình 3.15.
4 Biểu đồ trình tự: Để hiểu rõ hoạt động của hệ thống, với mỗi ca sửdụng cần phải xây dựng biểu đồ trình tự mô tả việc trao đổi thôngđiệp giữa các đối tượng theo trục thời gian.
• Cập nhật thông tin: Bình thường, khi không có tàu, hệ thốnglàm việc dạng dò thông tin Mỗi khi tàu đến gần, mức tín hiệu
Trang 403.2 Thiết kế hướng đối tượng phần mềm hệ thống [2]37
Hình 3.15: Biểu đồ lớp
vượt ngưỡng, hệ thống bắt đầu làm việc hết công suất Liên tụcchuyển đổi ADC (phần chuyển đổi tín hiệu tương tự vi sai sangđiện áp tương tự theo chuẩn của bộ ADC + lọc nhiễu đã có phầncứng đảm nhiệm), đóng gói và truyền lên máy tính Máy tính liêntục cập nhật thông tin mới vào bộ nhớ chung; được diễn tả theohình 3.16.
Hình 3.16: Biểu đồ trình tự: "Cập nhật thông tin"
• Khi in thông tin, có 2 lý do để in là in phiếu cân của chuyến gần